Problemas com o setLayout  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
nefertiti
JavaChild
[Avatar]

Membro desde: 21/05/2004 11:52:43
Mensagens: 134
Localização: Curitiba/PR
Offline

Tenho a seguinte classe:

class CadastrarGene extends JPanel {
JLabel unigeneLabel,giLabel,nomeLabel,sequenciaLabel;
JTextField unigeneTextField,giTextField,nomeTextField;
JTextArea sequenciaTextArea;
JScrollPane sequenciaScrollPane;

public CadastrarGene( ) {

setLayout (new GridLayout(4,1));


unigeneLabel = new JLabel ("UNIGENE", JLabel.LEFT);
giLabel = new JLabel ("GI", JLabel.LEFT);
nomeLabel = new JLabel ("Nome do gene", JLabel.LEFT);
sequenciaLabel = new JLabel ("Seqüência de DNA", JLabel.LEFT);
unigeneTextField = new JTextField (10);
giTextField = new JTextField (10);
nomeTextField = new JTextField (255);
sequenciaTextArea = new JTextArea (8,40);
sequenciaScrollPane = new JScrollPane (sequenciaTextArea);


add(unigeneLabel);
add(giLabel);
add(nomeLabel);
add(sequenciaLabel);
add(unigeneTextField);
add(giTextField);
add(nomeTextField);
add(sequenciaScrollPane);


}

public static void main (String [] args) {
JFrame CadastrarGene = new JFrame("Cadastrar gene");
CadastrarGene.addWindowListener (new WindowAdapter() {
public void windowClosing (WindowEvent e) {
System.exit (0);

}
});



CadastrarGene.setContentPane(new CadastrarGene ());
CadastrarGene.setSize(400,90);
CadastrarGene.setLocation(100,100);
CadastrarGene.show();
}
}


O layout não está saindo correto, os TextField não estão em seus lugares e ao maximizar a janela os componentes ficam todos deformados. Alguém pode me dizer o q há de errado? Estou iniciando no Java e olhei e não consegui ver o q está errado.



Valeu

Nefertiti

"O conhecimento humano faz parte do mundo"
"Não use drogas...use Software Livre!"
[Email] [WWW] [MSN]
dsiviotti
Virtual Machine Man
[Avatar]

Membro desde: 19/01/2004 01:35:23
Mensagens: 541
Localização: Rio de Janeiro
Offline

Tente isso


no lugar disso:



Melhora bastante

Douglas Siviotti
[Email] [WWW] [Yahoo!] [ICQ]
dsiviotti
Virtual Machine Man
[Avatar]

Membro desde: 19/01/2004 01:35:23
Mensagens: 541
Localização: Rio de Janeiro
Offline

nefertiti wrote:
JFrame CadastrarGene = new JFrame("Cadastrar gene");


Você está criando uma variável "CadrastarGene" com o mesmo nome da Classe, isso não é nada bom. Procure usar algo como "cadastrarGene" simplesmente.

Quanto à maximização, você está usando GridLayout, os componentes ficam do tamanho igual a (Tamanho da Janela/Colunas x Linhas) . Se quer tamanhos fixos use null no lugar de um layout.

No seu layout existem 8, e não 4 células. Por isso você deveria usar



no lugar de



Acho que vai ficar como você imaginou antes de escrever.

Douglas Siviotti
[Email] [WWW] [Yahoo!] [ICQ]
nefertiti
JavaChild
[Avatar]

Membro desde: 21/05/2004 11:52:43
Mensagens: 134
Localização: Curitiba/PR
Offline

Valeu pelas dicas. Foram muito valiosas!!
Só tenho uma dúvida.: no caso se eu quiser q as dimensões da janela se adaptem aos componentes, vc disse para utilizar null, mas onde?




Valeu



Nefertiti

"O conhecimento humano faz parte do mundo"
"Não use drogas...use Software Livre!"
[Email] [WWW] [MSN]
dsiviotti
Virtual Machine Man
[Avatar]

Membro desde: 19/01/2004 01:35:23
Mensagens: 541
Localização: Rio de Janeiro
Offline

Aqui


Mas assim você tem que definir x/y para cada componente. Mais ou menos assim:


componente.setBounds(x, y, largura, altura);

Douglas Siviotti
[Email] [WWW] [Yahoo!] [ICQ]
nefertiti
JavaChild
[Avatar]

Membro desde: 21/05/2004 11:52:43
Mensagens: 134
Localização: Curitiba/PR
Offline

Valeu pela dica, resolveu meu problema!!!!!



Nefertiti


"O conhecimento humano faz parte do mundo"
"Não use drogas...use Software Livre!"
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team