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



请帮助我。我的程序中有一个JButton和一个JTextField。通过单击该按钮,将创建一个选项卡,其中包含在JTextField中打印的名称,并在此选项卡中使用一个JTable。在 JTextField 中使用另一个名称再次单击按钮,我需要在这个新选项卡中使用另一个 JTable 创建另一个选项卡,但是在第一个选项卡中执行此操作后,JTable 变为空,第一个选项卡中的所有信息都进入第二个选项卡。猜猜这是因为我的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));
}                                        

感谢您的回答。问题解决了。我的代码中有一个错误。

最新更新