Como eu mudo o tamalho da minha tabela?
Eu gostaria de alterar a altura dela mas não consigo com setsize, e etc.
Como eu mudo o tamalho da minha tabela?
Eu gostaria de alterar a altura dela mas não consigo com setsize, e etc.
Que altura você se refere, camaradA? Pode ser mais claro?
Ok, me desculpe por falta de contexto…
Eu tenho o seguinte trecho do meu código (A construção do Frame):
setSize(1200, 500); //Sem Jframe porque eu extendi
scrollPainel = new JScrollPane(getTabela());
tabela.setModel(new ModeloTabela());
tabela.addMouseListener(this);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
tela.add(scrollPainel, BorderLayout.SOUTH);
tela.add(getPainelBotao(), FlowLayout.CENTER);
setResizable(true);
botaoDetalhe.setEnabled(false);
E eu gostaria de alterar a altura do meu scrollPane… ele só fica em uma única posição Oo… eu consigo modificar a largura dele mas não a altura
Então esqueça a parte do AbstractTable, ele não tem nada a ver com isso.
Eu não gosto de re-renderizar componentes do Swing, prefiro criar ele maior e então trabalhar os dados dentro dele.
Para ser mais específico ainda eu tenho essas imagens de como meu scrollPane está fixo:
http://www.imghaven.com/show/43895/swing1.JPG
http://www.imghaven.com/show/43896/swing2.JPG
Aqui é o pior, onde o scroll fica por cima dos botões.
http://www.imghaven.com/show/43897/swing3.JPG
Para que os botões não sejam sobrescritos, que tal se você colocar um BorderLayout no panel principal e cada um dos panels responsáveis dentro dele?[code]Container container = getContentPane();
container.setLayout(new BorderLayout());
JPanel panelTable = new JPanel();
JTable table = new JTable(new SeuTableModel());
JScrollPane scroll = new JScrollPane(table);
JPanel panelButtons = new JPanel(new FlowLayout());
panelButtons.add(new JButton(“A”));
panelButtons.add(new JButton(“B”));
panelButtons.add(new JButton(“C”));
container.add(scroll, BorderLayout.NORTH);
container.add(panelButtons, BorderLayout.SOUTH);[/code]Assim resolve?
[quote=Nicolas Fernandes]Para que os botões não sejam sobrescritos, que tal se você colocar um BorderLayout no panel principal e cada um dos panels responsáveis dentro dele?[code]Container container = getContentPane();
container.setLayout(new BorderLayout());
JPanel panelTable = new JPanel();
JTable table = new JTable(new SeuTableModel());
JScrollPane scroll = new JScrollPane(table);
JPanel panelButtons = new JPanel(new FlowLayout());
panelButtons.add(new JButton(“A”));
panelButtons.add(new JButton(“B”));
panelButtons.add(new JButton(“C”));
container.add(scroll, BorderLayout.NORTH);
container.add(panelButtons, BorderLayout.SOUTH);[/code]Assim resolve?[/quote]
Meu código ficou assim mas não resolveu:
private static final long serialVersionUID = 1L;
private JPanel painelBotao;
private JButton botaoIncluir = new JButton("Incluir");
private JButton botaoDetalhe = new JButton("Detalhes");
private Container tela = getContentPane();
private JScrollPane scrollPainel;
public JTable tabela = new JTable();
public static void main(String[] args) throws SQLException, IOException {
JFrame tela = new Main();
tela.setVisible(true);
}
Main() throws SQLException {
super("InfraBridge Config Manager");
initialize();
}
private void initialize() throws SQLException {
setSize(1200, 500);
scrollPainel = new JScrollPane(getTabela());
tabela.setModel(new ModeloTabela());
tabela.addMouseListener(this);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
tela.add(scrollPainel, BorderLayout.NORTH);
tela.add(getPainelBotao(), BorderLayout.SOUTH);
setResizable(true);
botaoDetalhe.setEnabled(false);
}
private JTable getTabela() throws SQLException {
tabela.setCellSelectionEnabled(false);
tabela.setRowSelectionAllowed(true);
return tabela;
}
private JButton getBotaoIncluir() {
botaoIncluir.addActionListener(this);
return botaoIncluir;
}
private JButton getBotaoDetalhe() {
botaoDetalhe.addActionListener(this);
return botaoDetalhe;
}
private JPanel getPainelBotao() {
painelBotao = new JPanel(new FlowLayout());
painelBotao.add(getBotaoIncluir());
painelBotao.add(getBotaoDetalhe());
return painelBotao;
}
Qual o intuito do setSize()?
Use também o método pack(), para notificar o Swing que aperte os componentes e ajuste-os na medida correta.
Eu, normalmente, crio um método showDialog() ao chamar um formulário, onde eu faço três operações:public void showDialog() {
pack();
setLocationRelativeTo(null);
setVisible(true);
}Toda vez que chamo um formulário, funciona assim:Formulario formulario = new Formulario();
formulario.showDialog();No construtor, eu tenho toda a configuração de inicialização do formulário. No showDialog(), eu simplesmente “aperto” tudo e mostro na tela.