Programando com Swing

2 respostas
Fabiano_Fiorindo
Bom dia galera Estou lendo um tutorial sobre programação grafico com swing que pegue nesta comunidade, porem e´o segundo exemplo que faço e não tenho o resultado esperado, eis o codigo
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingExemplo02 extends JFrame implements ActionListener{
	JButton botao;
	JPanel panel;
	JTextField texto;
	
	public SwingExemplo02(){
		super("GUJ.com.br");
	}
	public void criaJanela(){
		texto = new JTextField("Digite algo...");
		
		panel = new JPanel();
		panel.setLayout(new GridLayout(2,1));
		
		botao = new JButton("Click aqui");
		botao.addActionListener(this);
		
		panel.add(texto);
		panel.add(botao);
		
		getContentPane().add(panel, BorderLayout.CENTER);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		pack();
		setVisible(true);
	}
	public void actionPerformed(ActionEvent event){
		botao.setText(texto.getText());
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SwingExemplo02 ex2 = new SwingExemplo02();
		ex2.criaJanela();
	}
}
O problema é o seguinte: Quando executo esse codigo, presumo que teva aparecer um botão e uma JTextField, mas não aparece nada, apenas mostra a janela pequena no lada esquerdo do monitor, se maximizo a tela ela não contem nada , o que devo fazer .

Obrigado

2 Respostas

W

Use classes anônimas para implementar eventos. Segue abaixo seu exemplo corrigido.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingExemplo02 extends JFrame {
	JButton botao;
	JPanel panel;
	JTextField texto;
	
	public SwingExemplo02(){
		super("GUJ.com.br");
	}
	public void criaJanela(){
		texto = new JTextField("Digite algo...");
		
		panel = new JPanel();
		panel.setLayout(new GridLayout(2,1));
		
		botao = new JButton("Click aqui");
		botao.addActionListener(new ActionListener(){
		    public void actionPerformed(ActionEvent event){
				botao.setText(texto.getText());
			}
		});
		
		panel.add(texto);
		panel.add(botao);
		
		getContentPane().add(panel, BorderLayout.CENTER);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		pack();
		setVisible(true);
	}
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
	    SwingExemplo02 ex2 = new SwingExemplo02 ();
		ex2.criaJanela();
	}
}
E

Tenta colocar nos panels.add() o seguinte código:

panel.add(texto,-1);
panel.add(botao,-1);

Se não resolver, dá uma pesquisada nos layout managers. O problema pode ser esse GridLayout que vc tá usando…

Criado 15 de agosto de 2005
Ultima resposta 15 de ago. de 2005
Respostas 2
Participantes 3