JFrame feita por mim retornando um valor

8 respostas
brothermclaud

Olá pessoal,
Gostaria de saber como posso fazer um JFrame que retorne um valor?
Minha idéia é fazer algo como o JOptionFrame.showInputDialog() que retorna a String digitada ao se fechar a janela. No meu caso, quero fazer uma janelinha com apenas uma tabela e um botao (ou dois) que, ao ser fechada retorne um String[][] com os valores digitados na tabela.
Será que alguém de dá alguma luz?

8 Respostas

birkoff

Eu acho que você poderia tentar capturar o Evento de fechamento de Janela da JFrame,
http://java.sun.com/j2se/1.5/docs/api/java/awt/event/WindowEvent.html
Mais especificamente o evento WINDOW_CLOSING

Aí acredito que você poderá pegar os dados de algum componente da JFrame e usar como retorno antes de fechar a janela de verdade.

Ta aí uma idéia, sou novato no Java mas eu tentaria por aí… fica com você verificar e desenvolver, tô longe do meu Eclipse pra testar aqui, mas pra mim tudo indica que o caminho é esse… :wink:

birkoff

Como eu tb to aprendendo, cheguei em casa e quis testar pra ver se funciona mesmo minha idéia… E funciona! :wink:

No próprio construtor do Jframe, coloquei isso:
expMatemática é um JTextField que tenho na minha aplicação…

this.addWindowListener(new WindowListener() {
			  public void windowClosing(WindowEvent e) {
				 System.out.println("Exp:"+expMatemática.getText());
			  }
			    public void windowClosed(WindowEvent e) {
			    }

			    public void windowOpened(WindowEvent e) {
			    }

			    public void windowIconified(WindowEvent e) {
			    }

			    public void windowDeiconified(WindowEvent e) {
			    }

			    public void windowActivated(WindowEvent e) {
			    }

			    public void windowDeactivated(WindowEvent e) {
			    }

			    public void windowGainedFocus(WindowEvent e) {
			    }

			    public void windowLostFocus(WindowEvent e) {
			    }

			    public void windowStateChanged(WindowEvent e) {
			    }
		}
		);

Quando fecho a JFrame, A expressão digitada na JTextField é impressa no console.

Espero ter ajudado… Acho que adaptar agora pra aquilo q vc realmente precisa deve ser fácil…

[]'s
Cristian

brothermclaud

Olá Cristian, tudo bem?
Você já deve ter usado o método showInputDialog da classe JOptionPane dessa forma:

Pois quero fazer algo parecido com isso, algo do tipo

Isso vai facilitar a programação de maneira ímpar.

Mantu

Dá uma lida nesse artigo aqui:
ACHO que talvez possa te ajudar em algo…
http://www.guj.com.br/java.tutorial.artigo.47.1.guj

brothermclaud

Mantu, tudo bem com você?
Eu dei uma olhada rápida no tutorial e acho que não irá me ajudar, mas vou olhar com mais calma daqui a pouco porque estou um muito ocupado agora.

Mas agradeço muito pela sua atenção!!!

birkoff

[quote=brothermclaud]Olá Cristian, tudo bem?
Você já deve ter usado o método showInputDialog da classe JOptionPane dessa forma:

Na verdade, nunca usei. Como falei, sou bem iniciante no java também… :slight_smile:
Mas acabei de aprender a usar agora. Obrigaod hehehe :wink:

brothermclaud:
Pois quero fazer algo parecido com isso, algo do tipo

Isso vai facilitar a programação de maneira ímpar.

Agora entendi melhor, não tinha me atido à questao de retornar o valor assim. Mas acho que minha sugestão continua válida, O que você terá que fazer é implementar uma classe MinhaClasse com um método static que cria a JFrame, aguarda a saída e retorna o resultado… Desafio interessante pra mim tb, vou ver se consigo implementar… :slight_smile:

[]'s
Cristian

brothermclaud

Bom, já que você aprendeu a usar o showImpotDialog (que é de extrema utilidade para projetos com muitas janelas) com a minha pergunta, bem que você poderia colocar umas estrelinhas pra mim, não é?

:lol:

Já decidi como fazer a essa classe. Fica acompanhando o tópico que assim que eu fizer (o que não pode ser agora porque estou bem ocupado) posto aqui pra galera ver. Mas se você conseguir antes, posta ai pra galera também!!!

birkoff

Não tenho tempo agora tb, mas olha isso aí q li, acho q ajuda bastante…

http://java.sun.com/products/jfc/tsc/articles/threads/threads2.html

Criado 27 de julho de 2006
Ultima resposta 27 de jul. de 2006
Respostas 8
Participantes 3