Boa tarde pessoal
Estou tentando fazer uma pequena aplicação de controle de contas para aprender JTable, JFrame entre outras.
Quando executo meu código o JTable apacere somente em uma linha não do tamaho que defino.
Segue abaixo o código.
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
public class MovimentoForm extends JFrame
{
private int largura = 600;
private int altura =400;
private JButton botaoCancela;
private JButton botaoInsere;
private JButton botaoDeleta;
private JButton botaoSalvar;
private JLabel labelData;
private JLabel labelLinha1;
private JLabel labelLinha2;
private JLabel labelDepart;
private JComboBox comboDepart;
private JTextField textValor;
private JTable tabela;
private DefaultTableModel modelo;
private JScrollPane scroll;
private GridBagLayout layout;
private GridBagConstraints constraints;
public MovimentoForm()
{
initComponents("16/09/2006");
}
public MovimentoForm(String data)
{
initComponents(data);
}
public void initComponents(String data)
{
setTitle("Cadastro de Movimento por data");
layout = new GridBagLayout();
getContentPane().setLayout(layout);
constraints = new GridBagConstraints();
botaoCancela = new JButton("Cancelar");
botaoInsere = new JButton("Inserir linha");
botaoDeleta = new JButton("Deletar linha");
botaoSalvar = new JButton("Salvar");
labelData = new JLabel("Data: " + data);
labelLinha1 = new JLabel("");
labelLinha2 = new JLabel("");
labelDepart = new JLabel("Departamento: ");
comboDepart = new JComboBox();
textValor = new JTextField();
String[][] dados = new String [][]{
{"SP","Sao Paulo"},
{"RJ","Rio de Janeiro"},
{"RN","Rio Grande do Norte"},
{"PR","Parana"}
};
String[] colunas = new String []{"Estado","Cidade"};
modelo = new DefaultTableModel(dados, colunas);
tabela = new JTable(modelo);
scroll = new JScrollPane(tabela);
scroll.setSize(new Dimension(250,200));
constraints.fill = GridBagConstraints.BOTH;
constraints.weightx = 5;
addComponent(labelLinha1,0,1,3,1);
addComponent(labelData,1,0,1,1);
addComponent(labelDepart,2,0,1,1);
addComponent(botaoInsere,3,0,1,1);
addComponent(botaoDeleta,3,1,1,1);
addComponent(botaoSalvar,3,2,1,1);
addComponent(botaoCancela,3,3,1,1);
addComponent(scroll,4,0,5,1);
botaoCancela.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt)
{
try
{
dispose();
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex.getMessage(), "Aviso", JOptionPane.ERROR_MESSAGE);
}
}
});
botaoInsere.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt)
{
try
{
int numLinhas = modelo.getColumnCount();
Vector dados1 = new Vector();
modelo.insertRow(4, dados1);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex.getMessage(), "Aviso", JOptionPane.ERROR_MESSAGE);
}
}
});
pack();
setSize(largura,altura);
setVisible(true);
//setResizable(false);
Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screensize.width-largura)/2,(screensize.height-altura)/2);
}
private void addComponent(Component component,int row,int column,int width,int height)
{
constraints.gridx = column;
constraints.gridy = row;
constraints.gridwidth = width;
constraints.gridheight = height;
constraints.insets = new Insets(4,4,4,4);
layout.setConstraints( component, constraints );
getContentPane().add( component );
}
public static void main(String args[])
{
MovimentoForm mf = new MovimentoForm();
}
}
Você podem me ajudar?