[RESOLVIDO]"Desgrudar" jbuttons de rodapé e topo

4 respostas
PhoenixWings

Boa noite pessoal. Estou começando em GUI e não sei como fazer para que haja um espaçamento entre o primeiro botão e o topo e entre o último botão e o rodapé. Meu GUI está assim:


Eu criei a interface com BorderLayout e GridLayout:

package alignframe;

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JTextField;
import javax.swing.JPanel;
import java.awt.Font;
import javax.swing.JLabel;
import javax.swing.SwingConstants;

public class AlignFrame extends JFrame 
{
	
	private JLabel label1;
	private JLabel label2;
	private JPanel buttonAlignPanel, textFieldAlignPanel, checkBoxAlignPanel;
	private JButton buttons[];
    private JTextField textFields[];
    private JCheckBox checkBoxes[];
    
    public AlignFrame()
    {
        super("Align");
    	
    	int count;
    	
        buttons = new JButton[3];
    	buttons[0] = new JButton("Ok");
    	buttons[1] = new JButton("Cancel");
    	buttons[2] = new JButton("Help");
    
        buttonAlignPanel = new JPanel(); // cria painel de conteúdo de botões
        buttonAlignPanel.setLayout(new GridLayout(buttons.length, 1, 5, 5));
        
        for(count = 0; count < buttons.length; count++)
        buttonAlignPanel.add(buttons[count]); // adiciona botões ao painel
        
        add(buttonAlignPanel, BorderLayout.EAST); // adiciona painel ao JFrame
    } // fim do construtor AlignFrame()
   } // fim da classe AlignFrame

Eu ainda irei adicionar mais componentes à GUI. Está certo usar BorderLayout e GridLayout nesta abordagem? eu pensei em usar o FloatLayout só que achei que os botões ficariam um ao lado do outro. Obrigado pela ajuda.

4 Respostas

E

Bom, você deve saber que sou radicalmente contra o GridbagLayout, assim como o carinha que fez a seguinte animação Flash:
Totally Gridbag

Isto posto, recomendo que você use uma IDE como o Eclipse (com o Jigloo ou o Visual Editor) ou o NetBeans para desenhar suas telas.

Se possível, aprenda um gerenciador de layout como o MigLayout:

http://www.miglayout.com

A menos que isso seja uma lição de casa e o professor exija que só sejam usados os layouts padrões, não perca tempo excessivo com isso. Se quiser usar apenas layouts padrões, normalmente você tem de usar vários panels (como você já está começando a fazer, aliás) ou então o famigerado GridBagLayout, que torna a manutenção dos programas virtualmente impossível.

PhoenixWings

entanglement:

A menos que isso seja uma lição de casa e o professor exija que só sejam usados os layouts padrões, não perca tempo excessivo com isso.

Isso quer dizer que seria mais interessante que eu me focasse a aprender a tratar eventos porque numa empresa sempre serão usadas as IDEs para criar GUIs no estilo “arrastar e soltar” objeto ? Eu já estou usando o Eclipse - Helios (Pena que ainda não tem Visual Editor para ele). Flash bastante esclarecedor. Obrigado por compartilhá-lo entanglement!

E

Estou usando o VE com o Galileo, basta rodar o update. Não há VE para o Helios (3.6).

PhoenixWings

Isso Helios, eu me confundi.

Criado 18 de agosto de 2010
Ultima resposta 19 de ago. de 2010
Respostas 4
Participantes 2