Como redimensionar componente usando Layout Manager ? Ex-> JTable c/ tamanho menor que o frame

2 respostas
kerberos2002

Oi Pessoal, tem user aqui que fez uma tela de procura de registros bem bacana (abaixo o link)

http://javafree.uol.com.br/files_user/files/7/52/03/jtable.png

Eu to querendo fazer algo parecido, mas minha tabela sempre fica do tamanho do frame, não fica com um pequeno espaço nas laterais da moldura do frame, eu to usando o BorderLayout. Ja tentei usar setMaximumSize mas nao resolveu....

JScrollPane tableAggregate;
                JFrame frame = new JFrame("Teste Tabelas");		
		JPanel p1 = new JPanel(new FlowLayout(FlowLayout.LEFT, 20, 20));
		JLabel label1 = new JLabel("Localizar ");
		JTextField tf1 = new JTextField(30);
		p1.add(label1);
		p1.add(tf1);
		tableAggregate = createTable();
		tableAggregate.setMaximumSize(new Dimension(800,600));		
		
                frame.getContentPane().setLayout(new BorderLayout(50,20));
		frame.getContentPane().add( tableAggregate, BorderLayout.CENTER);
		
		frame.add(p1,BorderLayout.SOUTH);
		frame.setSize(1024,768);		
		frame.setVisible(true);

Ela fica desse jeito

[IMG]http://i.imgur.com/qRmI9.png[/IMG]

2 Respostas

E

Use o WindowBuilder e o MigLayout. Um exemplo (não configurei a tabela direitinho) :

package bvmf;

import java.awt.EventQueue;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

import net.miginfocom.swing.MigLayout;

public class ExemploLayoutJTable extends JFrame {

    private JPanel contentPane;
    private JMenuBar menuBar;
    private JMenu mnOpes;
    private JMenuItem mntmSair;
    private JScrollPane scrollPane;
    private JLabel lblLocalizar;
    private JTextField textField;
    private JButton button;
    private JPanel panel;
    private JButton btnIncluir;
    private JButton btnExcluir;
    private JButton btnAlterar;
    private JButton btnConsultar;
    private JButton btnImprimir;
    private JTable table;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ExemploLayoutJTable frame = new ExemploLayoutJTable();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public ExemploLayoutJTable() {
        setTitle("Arquivo de Representantes");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(new MigLayout("", "[432px,grow]", "[30px:n][grow][][]"));
        contentPane.add(getMenuBar_1(), "growx");
        contentPane.add(getScrollPane(), "cell 0 1,grow");
        contentPane.add(getLblLocalizar(), "flowx,cell 0 2,alignx right");
        contentPane.add(getTextField(), "cell 0 2");
        contentPane.add(getButton(), "cell 0 2");
        contentPane.add(getPanel(), "cell 0 3,grow");
    }

    private JMenuBar getMenuBar_1() {
        if (menuBar == null) {
            menuBar = new JMenuBar();
            menuBar.add(getMnOpes());
        }
        return menuBar;
    }

    private JMenu getMnOpes() {
        if (mnOpes == null) {
            mnOpes = new JMenu("Op\u00E7\u00F5es");
            mnOpes.add(getMntmSair());
        }
        return mnOpes;
    }

    private JMenuItem getMntmSair() {
        if (mntmSair == null) {
            mntmSair = new JMenuItem("Sair");
        }
        return mntmSair;
    }

    private JScrollPane getScrollPane() {
        if (scrollPane == null) {
            scrollPane = new JScrollPane();
            scrollPane.setViewportView(getTable());
        }
        return scrollPane;
    }

    private JLabel getLblLocalizar() {
        if (lblLocalizar == null) {
            lblLocalizar = new JLabel("Localizar:");
        }
        return lblLocalizar;
    }

    private JTextField getTextField() {
        if (textField == null) {
            textField = new JTextField();
            textField.setColumns(10);
        }
        return textField;
    }

    private JButton getButton() {
        if (button == null) {
            button = new JButton("...");
        }
        return button;
    }

    private JPanel getPanel() {
        if (panel == null) {
            panel = new JPanel();
            panel.add(getBtnIncluir());
            panel.add(getBtnExcluir());
            panel.add(getBtnAlterar());
            panel.add(getBtnConsultar());
            panel.add(getBtnImprimir());
        }
        return panel;
    }

    private JButton getBtnIncluir() {
        if (btnIncluir == null) {
            btnIncluir = new JButton("Incluir");
        }
        return btnIncluir;
    }

    private JButton getBtnExcluir() {
        if (btnExcluir == null) {
            btnExcluir = new JButton("Excluir");
        }
        return btnExcluir;
    }

    private JButton getBtnAlterar() {
        if (btnAlterar == null) {
            btnAlterar = new JButton("Alterar");
        }
        return btnAlterar;
    }

    private JButton getBtnConsultar() {
        if (btnConsultar == null) {
            btnConsultar = new JButton("Consultar");
        }
        return btnConsultar;
    }

    private JButton getBtnImprimir() {
        if (btnImprimir == null) {
            btnImprimir = new JButton("Imprimir");
        }
        return btnImprimir;
    }

    private JTable getTable() {
        if (table == null) {
            table = new JTable();
        }
        return table;
    }
}


kerberos2002

Valeu entanglement, mais uma vez me dando um força :D. Vou dar uma boa olhada na sua solução.

Criado 26 de outubro de 2012
Ultima resposta 28 de out. de 2012
Respostas 2
Participantes 2