网格袋布局中的JTable对齐

时间:2019-06-20 04:25:31

标签: java swing jtable

我正在尝试将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);

0 个答案:

没有答案