public class Tela extends JFrame {
JButton btnOk = new JButton("Ok");
JButton btnCancel = new JButton("Cancelar");
JPanel pnl = new JPanel();
JPanel botaoPanel;
JTextField nomeArt = new JTextField();
JLabel lblNomeArt = new JLabel("Nome Artista ");
JTextField nomeAlb = new JTextField();
JLabel lblNomeAlb = new JLabel("Nome Album ");
JTextField numFaixas = new JTextField();
JLabel lblNumFaixas = new JLabel("Número de Faixas");
JTextField genero = new JTextField();
JLabel lblgenero = new JLabel("Genero: ");
JTextField ano = new JTextField();
JLabel lblAno = new JLabel("Ano: ");
public Tela() {
super("Cadastro");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
setVisible(true);
}
public void criaJanela() {
pnl.add(lblNomeArt);
pnl.add(nomeArt);
pnl.add(lblNomeAlb);
pnl.add(nomeAlb);
pnl.add(lblNumFaixas);
pnl.add(numFaixas);
pnl.add(lblgenero);
pnl.add(genero);
pnl.add(lblAno);
pnl.add(ano);
getContentPane().add(pnl, BorderLayout.CENTER);
botaoPanel.add(btnCancel);
botaoPanel.add(btnOk);
getContentPane().add(botaoPanel, BorderLayout.SOUTH);
}
public static void main(String[] args) {
Tela t = new Tela();
t.criaJanela();
}
Dúvida Botões e JTextField
6 Respostas
- Inicialize o botão panel com FlowLayout:
- Para o painel central, seria bom usar um GridLayout ou um GridBagLayout.
http://download.oracle.com/javase/tutorial/uiswing/layout/grid.html
http://download.oracle.com/javase/tutorial/uiswing/layout/gridbag.html
Ou mesmo o MigLayout:
http://www.miglayout.com/QuickStart.pdf
-
É uma boa prática não chamar setVisible(true) no construtor do seu JFrame.
-
Chame o método criajanela no construtor, antes de fazer setVisible(true). E deixe o método criaJanela() private.
Além do que o Vini já disse é sempre bom incluir o comando pack() na última linha do construtor.
O comando pack() redimensiona a janela automaticamente para o preferredSize dos componentes. Isso muitas vezes é interessante, muitas vezes não. Imaginei que ele não quisesse por dar um setSize diretamente na janela dele.
Pessoal, ainda continuam aparecendo os JtextFields pequenos… tentei também com o setSize() e mesmo assim não se alteraram!
O que pode ser?
Que layout manager você usou?
Use o setPreferredSize, não o setSize.
passe para o contrutor do JTextField um valor inteiro para ser definido o ‘tamanho’ do seu JTextField, ex:
JTextField nomeArt = new JTextField(10);