如何使用一个JButton添加两个,三个或更多JTable

时间:2018-04-14 14:46:27

标签: java swing jtable

请帮帮我。我的程序中有一个JButton和一个JTextField。通过单击按钮,将创建一个选项卡,其中名称在JTextField中打印,并且此选项卡中包含一个JTable。在JTextField中再次使用另一个名称再次单击该按钮我需要在此新选项卡中创建另一个带有另一个JTable的选项卡,但在执行此操作后,第一个选项卡中的JTable变为空,并且第一个选项卡中的所有信息都将转到第二个选项卡。猜猜是因为我的DefaultTableModel有一个名字。我不知道如何动态生成DefaultTableModel名称。可能吗?

这是我的JButton代码:

private void bt_AddActionPerformed(java.awt.event.ActionEvent evt) {                                       
    GlobalVars.firmAdd = tf_addFirm.getText();
    DefaultTableModel tableModel = new DefaultTableModel();
    JTable table = new JTable(tableModel);
    tableModel.setDataVector(new Object [][] {}, new String [] {"№", "Дата заказа", "Дата статуса", "Наименование детали", "Оборудование", "Ссылка для фото", "Кол-во", "Номер заказа", "Стоимость", "Срок поставки", "Согласовано", "В обработке", "Сбор заказа", "Заказано"});
    if (table.getColumnModel().getColumnCount() > 0) {
            table.getColumnModel().getColumn(0).setMinWidth(40);
            table.getColumnModel().getColumn(0).setPreferredWidth(40);
            table.getColumnModel().getColumn(0).setMaxWidth(40);
            table.getColumnModel().getColumn(1).setMinWidth(80);
            table.getColumnModel().getColumn(1).setPreferredWidth(80);
            table.getColumnModel().getColumn(1).setMaxWidth(80);
            table.getColumnModel().getColumn(2).setMinWidth(85);
            table.getColumnModel().getColumn(2).setPreferredWidth(85);
            table.getColumnModel().getColumn(2).setMaxWidth(85);
            table.getColumnModel().getColumn(3).setMinWidth(300);
            table.getColumnModel().getColumn(3).setPreferredWidth(300);
            table.getColumnModel().getColumn(3).setMaxWidth(300);
            table.getColumnModel().getColumn(4).setMinWidth(300);
            table.getColumnModel().getColumn(4).setPreferredWidth(300);
            table.getColumnModel().getColumn(4).setMaxWidth(300);
            table.getColumnModel().getColumn(5).setMinWidth(200);
            table.getColumnModel().getColumn(5).setPreferredWidth(200);
            table.getColumnModel().getColumn(5).setMaxWidth(200);
            table.getColumnModel().getColumn(6).setMinWidth(50);
            table.getColumnModel().getColumn(6).setPreferredWidth(50);
            table.getColumnModel().getColumn(6).setMaxWidth(50);
            table.getColumnModel().getColumn(7).setMinWidth(150);
            table.getColumnModel().getColumn(7).setPreferredWidth(150);
            table.getColumnModel().getColumn(7).setMaxWidth(150);
            table.getColumnModel().getColumn(9).setMinWidth(95);
            table.getColumnModel().getColumn(9).setPreferredWidth(95);
            table.getColumnModel().getColumn(9).setMaxWidth(95);
            table.getColumnModel().getColumn(10).setMinWidth(85);
            table.getColumnModel().getColumn(10).setPreferredWidth(85);
            table.getColumnModel().getColumn(10).setMaxWidth(85);
            table.getColumnModel().getColumn(11).setMinWidth(85);
            table.getColumnModel().getColumn(11).setPreferredWidth(85);
            table.getColumnModel().getColumn(11).setMaxWidth(85);
            table.getColumnModel().getColumn(12).setMinWidth(85);
            table.getColumnModel().getColumn(12).setPreferredWidth(85);
            table.getColumnModel().getColumn(12).setMaxWidth(85);
            table.getColumnModel().getColumn(13).setMinWidth(65);
            table.getColumnModel().getColumn(13).setPreferredWidth(65);
            table.getColumnModel().getColumn(13).setMaxWidth(65);
            table.setShowHorizontalLines(true);
            table.setShowVerticalLines(true);
        }
    tb_tabbedPane.addTab(GlobalVars.firmAdd, new JScrollPane(table));
}                                        

1 个答案:

答案 0 :(得分:0)

感谢您的回答。问题已经解决了。我的代码出错了。