Dúvida com JOptionPane

8 respostas
D

Pessoal estou implementando um arquivo .jar (executável java) e estou tendo problemas em manter a caixa de envio de parâmetros de meu aplicativo aberta após pressionar o OK da Janela. Da maneira como tenho implementada sempre que pressiono o botão OK eu fecho a aplicação. Gostaria que se possível alguém pudesse me dar uma dica de como fazer para manter a caixa aberta até que eu a fechasse pressionando no X do canto da tela. Este é o código que tenho para a montagem da janela:

JPanel painel = new JPanel(); 
        JTextField texto1 = new JTextField(10); 
        JTextField texto2 = new JTextField(10); 
        JLabel label1 = new JLabel("    Linha 1:"); 
        JLabel label2 = new JLabel("    Linha 2:"); 
        painel.add(label1);
        painel.add(texto1); 
        painel.add(label2); 
        painel.add(texto2); 
        painel.setLayout(new GridLayout(2,2)); 
        JOptionPane.showMessageDialog(null, painel);

Agradeço se alguém puder me dar uma força.

8 Respostas

hmichel

Cara, para você estar mantendo isto, você deverá modificar para um JFrame por exemplo, e então controlar os botões a seu bom agrado, pois as operações padrão do JOptionPane são estas mesmo.

D

Valeu pela dica hmichel, vou dar uma olhada em como implementar o JFrame e então testar para ver se consigo fazer funcionar. Obrigado!

Y

Acho que talvez seja melhor implementar como um JDialog!!

D

Pessoal agora estou testando com JFrame, tendo o seguinte código:

getContentPane().setLayout(null);
JFrame painel = new JFrame();
JLabel label1=new JLabel("Linha1"); 
label1.setBounds(15,20,150,20);	 
JTextField texto1=new JTextField(10);
texto1.setBounds(60,20,150,20);	
	
JLabel label2=new JLabel("Linha2"); 
label2.setBounds(15,50,150,20);	 
JTextField texto2=new JTextField(10);
texto2.setBounds(60,50,150,20);	
	
JButton ok = new JButton("OK"); 
ok.setBounds(25,80,70,20);	
JButton cancel = new JButton("Cancel");
cancel.setBounds(150,80,100,20);	

 //inserindo o JLabel	
this.getContentPane().add(label1);
this.getContentPane().add(texto1);	
this.getContentPane().add(label2); 
this.getContentPane().add(texto2);
this.getContentPane().add(ok);
this.getContentPane().add(cancel);
setSize(400,300); 
show();

Agradeço se alguém puder me dar uma ajuda, pois não estou conseguindo capturar os valores digitados no JFrame e que deveriam estar nas variáveis texto1 e texto2.

R
String text1 = texto1.getText();
String text2 = texto2.getText();
D

Valeu rbarioni, mas acontece que não consegui tratar o evento do botão OK no código :oops: , agradeço se alguém puder me ajudar. Abraço!

R

ainda nao entendi o q ker fazer com o botao de OK.

D

Quero através do botão OK enviar os dados digitados pelo usuário dentro de label1 e label2 para as variáveis texto1 e texto2 respectivamente fazendo com que limpe os campos permitindo que o usuário digite novamente e se quiser envie novamente os valores para as duas variáveis utilizando o botão OK. Ou seja, o que quero é possibilitar que o usuário após ter digitado os valores nos dois labels e enviado os seus respectivos valores para as variáveis texto1 e texto2 não tenha que reiniciar o programa para enviar outros valores, bastando simplesmente digitá-los novamente e clicar em OK para que os mesmos sejam enviados e caso deseje encerrar a aplicação clique no canto direito superior em X fechar ou derrepente eu crie um botão fechar também na tela. Espero ter explicado o problema. Agradeço se alguém puder me ajudar com um exemplo que demonstre este tipo de operação em um JFrame. :cry:

Criado 4 de novembro de 2004
Ultima resposta 5 de nov. de 2004
Respostas 8
Participantes 4