我正在尝试将jtable对齐到网格袋布局中,以便表格在框架中自动对齐。但是表格固定在框架的底部,如何在框架增加时自动调整表格大小
JPanel panel = new JPanel ();
panel.setBorder (BorderFactory.createTitledBorder (BorderFactory.createEmptyBorder (),
"Table Title",
TitledBorder.LEFT,
TitledBorder.TOP));
Object[] columnNames = {"", "Title", "Models"};
DefaultTableModel model = new DefaultTableModel(data1, columnNames) {
@Override
public boolean isCellEditable(int arg0, int column) {
// TODO Auto-generated method stub
return column==0;
}
};
jt = new JTable(model){
private static final long serialVersionUID = 1L;
@Override
public Class getColumnClass(int column) {
switch (column) {
case 0:
return Boolean.class;
case 1: return String.class;
default:
return String.class;
}
}
};
jt.setPreferredScrollableViewportSize(jt.getPreferredSize());
jt.setShowGrid(false);
jt.getTableHeader().setFont(new Font("Open Sans", Font.BOLD, 14));
jt.setFont(new Font("Open Sans", Font.PLAIN, 14));
jt.setRowHeight(25);
jt.setEditingColumn(0);
((DefaultTableCellRenderer)jt.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(JLabel.LEFT);
TableColumnModel columnModel = jt.getColumnModel();
System.out.println(columnModel.getColumn(0).getWidth());
System.out.println(columnModel.getColumn(1).getWidth());
System.out.println(columnModel.getColumn(2).getWidth());
columnModel.getColumn(0).setPreferredWidth(10);
columnModel.getColumn(1).setPreferredWidth(200);
columnModel.getColumn(2).setPreferredWidth(1800);
System.out.println(columnModel.getColumn(0).getWidth());
System.out.println(columnModel.getColumn(1).getWidth());
System.out.println(columnModel.getColumn(2).getWidth());
panel.add(jt);
JScrollPane scrollPane = new JScrollPane(jt);
getContentPane().add(scrollPane);
// setSize(500, 500);
setVisible(true);
SwingUtils.addTextArea(this, PanelStrings.getString("AE_EEM_Upgrade_EEM_Policies_Sub_Title"), UXConstants.subTitleFont, 1, 0, 0, true);
GridBagConstraints gbc_comboBox = new GridBagConstraints();
gbc_comboBox.insets = new Insets(0, 0, 5, 0);
gbc_comboBox.fill = GridBagConstraints.HORIZONTAL;
gbc_comboBox.gridx = 1;
gbc_comboBox.gridy = 2;
gbc_comboBox.gridheight = GridBagConstraints.REMAINDER -1;
gbc_comboBox.gridwidth = GridBagConstraints.REMAINDER -1 ;
add(jt.getTableHeader(), gbc_comboBox);
gbc_comboBox.insets = new Insets(0, 0, 5, 0);
gbc_comboBox.fill = GridBagConstraints.HORIZONTAL;
gbc_comboBox.gridx = 1;
gbc_comboBox.gridy = 3;
gbc_comboBox.gridheight = GridBagConstraints.REMAINDER -1;
gbc_comboBox.gridwidth = GridBagConstraints.REMAINDER -1 ;
add(jt, gbc_comboBox);