Meu JButton ocupa a tela toda

3 respostas
lucao

Alguem pode me dizer pq o meu JButton ocupa a tela do aplicativo toda ? Eu até seto o tamanho e local dele e nada, se alguem puder me ajudar eu agradeço.

import javax.swing.*;

public class CadastroPessoa extends JFrame{

	private JLabel lCodigo;
	private JLabel lNome;
	private JLabel lTelefone;
	private JLabel lDescricao;

	private JTextField tfCodigo;
	private JTextField tfNome;
	private JTextField tfTelefone;
	private JTextArea taDescricao;
	
	private JButton bCadastrar;
	private JButton bSair;
	
	public CadastroPessoa(){
	
		lCodigo = new JLabel("Codigo: ");
		lNome= new JLabel("Nome: ");
		lTelefone= new JLabel("Telefone: ");
		lDescricao= new JLabel("Descrição: ");

		tfCodigo = new JTextField();
		tfNome = new JTextField();
		tfTelefone = new JTextField();
		taDescricao = new JTextArea();
	
		bCadastrar = new JButton("Cadastrar");
		bCadastrar.setSize(10,20);
		bCadastrar.setLocation(10,600);
		bSair = new JButton("Sair");
		bSair.setSize(10,20);
		bSair.setLocation(50,600);
		
		this.add(lCodigo);
		this.add(lNome);
		this.add(lTelefone);
		this.add(lDescricao);
		this.add(tfCodigo);
		this.add(tfNome);
		this.add(tfTelefone);
		this.add(taDescricao);
		this.add(bCadastrar);
		this.add(bSair);
		
		this.setSize(800,600);
		this.setVisible(true);
				
	}
	
	public static void main(String args[]){
		CadastroPessoa cp = new CadastroPessoa();
    }
}

3 Respostas

Rodrigo_Vieira_Pinto

Tente colocar, antes de instanciar os componentes da tela (poderia ser depois, não tem problema)

setLayout(new FlowLayout());

Os componentes vão aparecer.
O que acontece é que, tanto um JFrame quanto o JPanel tem os seus gerenciadores de layout default, ai se vc não souber lidar com eles pode acontecer erros como esse (de aparecer somente o último componente que vc adicionou na tela).

Estude gerenciadores de layout. Quando vc achar que isso é um saco (quase todo mundo acha) configure o setLayout para null e coloque setBounds em todos os componentes…heeheheh

Espero ter ajudado, até mais!

jeancz
lucao:
Alguem pode me dizer pq o meu JButton ocupa a tela do aplicativo toda ? Eu até seto o tamanho e local dele e nada, se alguem puder me ajudar eu agradeço.
import javax.swing.*;

public class CadastroPessoa extends JFrame{

	private JLabel lCodigo;
	private JLabel lNome;
	private JLabel lTelefone;
	private JLabel lDescricao;

	private JTextField tfCodigo;
	private JTextField tfNome;
	private JTextField tfTelefone;
	private JTextArea taDescricao;
	
	private JButton bCadastrar;
	private JButton bSair;
	
	public CadastroPessoa(){
	
		lCodigo = new JLabel("Codigo: ");
		lNome= new JLabel("Nome: ");
		lTelefone= new JLabel("Telefone: ");
		lDescricao= new JLabel("Descrição: ");

		tfCodigo = new JTextField();
		tfNome = new JTextField();
		tfTelefone = new JTextField();
		taDescricao = new JTextArea();
	
		bCadastrar = new JButton("Cadastrar");
		bCadastrar.setSize(10,20);
		bCadastrar.setLocation(10,600);
		bSair = new JButton("Sair");
		bSair.setSize(10,20);
		bSair.setLocation(50,600);
		
		this.add(lCodigo);
		this.add(lNome);
		this.add(lTelefone);
		this.add(lDescricao);
		this.add(tfCodigo);
		this.add(tfNome);
		this.add(tfTelefone);
		this.add(taDescricao);
		this.add(bCadastrar);
		this.add(bSair);
		
		this.setSize(800,600);
		this.setVisible(true);
				
	}
	
	public static void main(String args[]){
		CadastroPessoa cp = new CadastroPessoa();
    }
}

Faltou:
getContentPane().setLayout(null);

lucao

Bom, foi isso que eu fiz, coloquei em null, e setei todos os setbounds.
Valeu.

Criado 28 de março de 2006
Ultima resposta 28 de mar. de 2006
Respostas 3
Participantes 3