Entrando na onda da galera que fez códigos no Natal, fiz aqui umas classe pra vc testar, fazendo tela de forma programática:
[code]public class Pessoa {
private String nome;
private String endereco;
private String telefone;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
}[/code]
[code]public class PainelCadastroPessoa extends JPanel {
private JTextField fieldNome;
private JTextField fieldEndereco;
private JTextField fielTelefone;
public PainelCadastroPessoa() {
super();
initComponents();
}
private void initComponents() {
GroupLayout layout=new GroupLayout(this);
this.setLayout(layout);
fielTelefone=new JTextField();
fieldNome=new JTextField();
fieldEndereco=new JTextField();
JLabel labelNome=new JLabel("Nome");
JLabel labelTelefone=new JLabel("Telefone");
JLabel labelEndereco=new JLabel("Endereco");
//definindo o tamanho máximos dos campos
fieldEndereco.setMaximumSize(new Dimension(610, 20));
fieldNome.setMaximumSize(new Dimension(300, 20));
fielTelefone.setMaximumSize(new Dimension(300, 20));
JButton botaoImprimir=new JButton("Imprimir dados");
botaoImprimir.addActionListener(new ListenerImprimir(this));
//Criando gaps automáticos
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
//organizando posicionamento vertical
layout.setHorizontalGroup(
layout.createParallelGroup(GroupLayout.Alignment.CENTER)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(labelNome)
.addComponent(fieldNome))
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(labelTelefone)
.addComponent(fielTelefone)
)
)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(labelEndereco)
.addComponent(fieldEndereco)
)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.CENTER)
.addComponent(botaoImprimir)
)
);
// Organizando posicionamento vertical
layout.setVerticalGroup(
layout.createSequentialGroup()
.addGroup(layout.createParallelGroup()
.addGroup(layout.createSequentialGroup()
.addComponent(labelNome)
.addComponent(fieldNome)
)
.addGroup(layout.createSequentialGroup()
.addComponent(labelTelefone)
.addComponent(fielTelefone)
)
)
.addGroup(layout.createSequentialGroup()
.addComponent(labelEndereco)
.addComponent(fieldEndereco)
)
.addGroup(layout.createSequentialGroup()
.addComponent(botaoImprimir)
)
);
}
public void setFields(Pessoa pessoa){
fieldEndereco.setText(pessoa.getEndereco());
fielTelefone.setText(pessoa.getTelefone());
fieldNome.setText(pessoa.getNome());
}
public Pessoa getPessoa(){
Pessoa pessoa=new Pessoa();
pessoa.setNome(fieldNome.getText());
pessoa.setEndereco(fieldEndereco.getText());
pessoa.setTelefone(fielTelefone.getText());
return pessoa;
}
}
[/code]
[code]public class ListenerImprimir implements ActionListener {
public ListenerImprimir(PainelCadastroPessoa painel) {
super();
this.painel = painel;
}
private PainelCadastroPessoa painel;
public void actionPerformed(ActionEvent e) {
Pessoa pessoa=painel.getPessoa();
System.out.println("Nome: "+pessoa.getNome());
System.out.println("Telefone: "+pessoa.getTelefone());
System.out.println("Endereço: "+pessoa.getEndereco());
}
}
[/code]
[code]public class JanelaTeste {
/**
* @param args
*/
public static void main(String[] args) {
JFrame frame=new JFrame("Cadastro de Pessoa");
frame.setSize(400,400);
frame.setContentPane(new PainelCadastroPessoa());
frame.setVisible(true);
}
}
[/code]
Eu gosto de usar o GroupLayout, mas o pessoal também curte usar o GridBagLayout. Enfim, repara que se vc usasse o SwingBean, iria dar muito menos linha de código, mas como vc quer fazer na mão, veja o exemplo e seja feliz.