JDialog

Ola pessoal

Eu criei um JDialog e nele tem um botao
eu gostaria que quando eu pressionasse no botao , a janela terminasse e retonasse um inteiro .

Eu gostaria de fazer uma janela que funcionasse tal como fonciona o JOptionPane.showConfirmDialog().

No metodo actionPerformed do botao eu pus o operador return de modo a retornar um inteiro, mas ao compilar deu erro pelo fato desse metodo ser void

Agradeço desd ja a todos que me poderem ajudar :wink:

Posta teu codigo ai…

Mas te adiantando, cria um metodo ou uma variavel global para guardar o valor deste teu inteiro.

abcs

ai vai o codigo


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;






public class JanelaDialogo extends JDialog
{
	

	
	private JButton b;
	private int cont = 0;
	private boolean escolha = false ;
	private JFrame frame;
	
	
	
	
	
	public JanelaDialogo( JFrame f )
	{
		super( f,"Janela" );
		
		b = new JButton( "Ok" );
		b.addActionListener( new ActionListener() 
		{
			public void actionPerformed( ActionEvent e )
			{
				/*
				 *Quando pressionar o botao
				 *o valor de cont passa a ser 40
				 **/
				cont = 40;
				dispose();//Termina a janela
			}
		} );
		
		
		
		
		this.add( b );
		this.setSize( 400, 451 );
		this.setLocationRelativeTo( null );
		this.setDefaultCloseOperation( WindowConstants.HIDE_ON_CLOSE );
		this.setVisible( true );
		
	}
	
	/*
	 *Este metodo ira retornar o valor de cont
	 *Devaria retornar o valor de cont depois de pressionar o botao 
	 *o que nao acontece
	 **/
	public int getInteiro()
	{
		return cont;
	}
	
}


class TestJanela extends JFrame
{
	public TestJanela()
	{
		int valor;// Variavel que vai receber o valor da janela depois de pressionar o botao
		JanelaDialogo a = new JanelaDialogo( this ); //Instanciaçao da janela
		
		valor = a.getInteiro();//devaria supostamente retornar 40
		System.out.println( valor );// Mas o valor que aparece é 0( zero ) 
		
		
		this.setSize( 600, 500 );
		this.setLocationRelativeTo( null );
		this.setDefaultCloseOperation( 3 );
		this.setVisible( true );
		
	}
	
	
	public static void main (String[] args) 
	{
		new TestJanela();
	}
}

[quote=“yb_theone”]

JanelaDialogo a = new JanelaDialogo( this ); //Instanciaçao da janela valor = a.getInteiro();//devaria supostamente retornar 40 System.out.println( valor );// Mas o valor que aparece é 0( zero ) [/quote]

Ola… no codigo acima vc acabou de instanciar a classe “JanelaDialogo” e entao ja tenta pegar o inteiro pelo metodo “getInteiro()”. O que acontece e que o botao nao foi pressionado ainda e esse metodo vai retornar 0 (valor default que vc mesmo atribuiu). Para retornar o inteiro vc tem que ter certeza que o botao tenha sido pressionado. Existe uma implementação disso que vc esta querendo aqui. Até mais.

Valew pela ajuda, mto obrigado :lol: :lol: :lol: