Duvida Basica com Swing

6 respostas
evertonsilvagomesjav

Pessoal eu utilizo o eclipse e o Plugin do Jigloo, porém eu estou começando a ler livros e artigos basicos de Swing para poder largar esses plugins. Tem como vcs me ajudarem em uma duvida bem basica…

a ordem seria essa? JFrame onde eu adiciono por exemplo um JPanel no JFrame e no JPanel adiciono um Layout? os botoes textfields, labels eu uso o layout pra add ou uso o proprio JPanel?

6 Respostas

fabiofalci

Sim, uma boa sequência é JFrame -> JPanel (Layout) -> Componentes
Sendo que vc adciona os componentes no JPanel.

evertonsilvagomesjav

fabio entao qual seria no grosso o papel do layout no JPanel se eu nao adiciono um da alguma inconsistencia? To usando plugin aqui funciona blz porem nao quero ficar usando mais. Nos codigos q o Jigloo gera ele da um add com o layout pra adiconar botoes, parece…

fabiofalci

Vc adiciona no JPanel que então delega a tarefa de posicionar o componente para o Layout.
Vc pode definir, por exemplo, como layout ‘null’ e então passar as coordenadas explicitamente.

Ou vc pode definir um layout, como o BorderLayout, e então, a cada componente definir a posição, algo assim:

JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());

panel.add(new JButton("Center"), BorderLayout.CENTER);
panel.add(new JButton("North"), BorderLayout.NORTH);

Ou seja, o JPanel terá 2 componente, um no centro e outro no norte, sendo que se vc fizer um resize na tela, ele vai reposicionar os componentes.

evertonsilvagomesjav

Hum Fabio mto obrigado cara, Layout seria pra posicionar entao meus components no JPanel seria isso mesmo ne?

Igual vc fez ai BorderLayout.CENTER ele vai posicionar meu jButton no centro porem se eu quiser um pouco mais pra esquerda mais nao totalmente no canto esquerdo tem alguma constante como CENTER que faz isso ou devo usar outro Layout?

fabiofalci

Isso mesmo, ele posiciona os componentes.
Pois é, as vezes um layout não serve para algumas telas, se vc quiser algo diferente de norte, sul, leste, oeste e centro, o BorderLayout não te ajuda.

2 ótimos layout:
http://www.miglayout.com/
http://www.jgoodies.com/freeware/forms/

evertonsilvagomesjav

vou dar uma estudada nesses layouts... vlw fabio so mais duas perguntas...

era pra funcionar isso aqui n?:

void GUI(){
		
		this.setVisible(true);
		
		JPanel jp = new JPanel();
		
		BorderLayout bd = new BorderLayout();
		
		jp.setLayout(bd);
		
		JButton jb = new JButton("teste");
		
		jb.setSize(50,50);
			
		jp.add(jb, bd.CENTER);		
		
	
		this.setExtendedState(JFrame.MAXIMIZED_BOTH);
	}
a outra pergunta é sobre o metodo pack() qual a funcionalidade dele?
Criado 10 de março de 2010
Ultima resposta 10 de mar. de 2010
Respostas 6
Participantes 2