Duvida Gerenciadores de layout

4 respostas
C

Boa tarde pessoal tenho duvida em relação ao gerenciador de layout,então o unico geito de eu escolher o tamanho (pixels)de um botão ou componente do swing é setando o gerenciador layout com tamanho null?
pois pelo que eu li via de regra o gerenciador sempre vai definir o tamanho em pixies,e ele sempre defini errado.Então tem como alterar o tamanho que o gerenciador que atribuir ao componente?

vlw

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

import org.omg.CORBA.TCKind;

public class Tela extends JFrame implements ActionListener {

	public static void main(String[] args) {
		Tela t = new Tela();

	}

	public Tela() {

		JPanel panel = new JPanel();

		JTextField tnome = new JTextField(20);
		JTextField tidade = new JTextField(20);
		JTextField tsalario = new JTextField(20);

		panel.setBackground(Color.LIGHT_GRAY);
		panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

		JButton Jsalvar = new JButton("salvar");

		panel.add(Jsalvar);
		panel.add(tnome);
		panel.add(tidade);
		panel.add(tsalario);

		Jsalvar.addActionListener(this);

		getContentPane().add(panel);
		

		setSize(300, 300);
		setVisible(true);

	}

	public void actionPerformed(ActionEvent e) {
		System.out.println("teste");
	}

}

4 Respostas

L

Os gerenciadores de layout de certa forma tomam o controle dos componentes, pois precisam estar atualizando a tela quando a mesma é redimencionada.
Se voce quer ter controle total sobre os componentes o unico modo é definindo o layout como null.
Agora, para que voce tenha um pouco mais de controle sobre a aparencia de sua aplicacao, utilizando gerenciadores de layout, podera usar mais de um layout usando mais de um container…

tipo… um container com flowlayout para agrupar botoes outro com gridbaglayout para sei lah labels e assim por diante…

Procure visualizar ou ateh mesmo fazer um esboco de como voce quer que sua tela fique e a partir dai voce decide quais layout utilizar!

T

Eu recomendaria usar o MigLayout, fora o layout automático (ao qual você provavelmente não se acostumou direito), ele também oferece a opção de setar manualmente alguns tamanhos, de forma mais clara.

http://www.miglayout.com

Leia o documento “quickstart.pdf” que está nesse site do MigLayout.

L

thingol:
Eu recomendaria usar o MigLayout…

Nunca gostei de usar layouts exatamente por nao ter muito controle sobre os componentes…
Nao conhecia este MigLayout, li a documentacao e achei interessante…

muito bom… tb recomendo!

ViniGodoy

Para falar em controle dos componentes, é preciso saber de antemão como esses componentes estarão dispostos na tela.

Um luxo que você não tem em Java:

  1. Linux, Mac e Windows tem fontes default diferentes - mesmo que o look&feel usado no Java seja o idêntico;
  2. Barras de título podem assumir tamanhos diferentes, aumentando ou reduzindo a área interna do Frame;
  3. Seu usuário pode, através da linha de comando, substituir o look&feel default da sua aplicação;
  4. É uma boa idéia deixar o usuário maximizar e minimizar a tela, e calcular o novo tamanho dos componentes no braço é um trabalho hercúleo.

É possível obter ótimas interfaces com os gerenciadores de layout. Mas, como toda filosofia de trabalho diferente, tem seus pontos fortes e fracos também.

Criado 5 de outubro de 2008
Ultima resposta 6 de out. de 2008
Respostas 4
Participantes 4