Java 从数据库更新到JTable

Java 从数据库更新到JTable,java,swing,jtable,Java,Swing,Jtable,我有一个JTable,它由DefaultTableModel填充,DefaultTableModel再次由从数据库读取数据的方法调用填充。我在actionlistner中添加了创建和删除按钮,这些按钮的功能正常。但我无法在删除或创建行后立即看到JTable中的更改。我不希望JT能够在按下按钮后立即更新自己。现在,我必须重新启动程序才能看到它。我已尝试在actionPerformedActionEvent e中的按钮调用后更改tableModel.fireTableDataChanged,没有效果

我有一个JTable,它由DefaultTableModel填充,DefaultTableModel再次由从数据库读取数据的方法调用填充。我在actionlistner中添加了创建和删除按钮,这些按钮的功能正常。但我无法在删除或创建行后立即看到JTable中的更改。我不希望JT能够在按下按钮后立即更新自己。现在,我必须重新启动程序才能看到它。我已尝试在actionPerformedActionEvent e中的按钮调用后更改tableModel.fireTableDataChanged,没有效果。 希望我已经解释清楚了,谢谢你的帮助

else if (e.getSource() == deleteTreatmentBtn)
        {
            treatmentName = JOptionPane
                    .showInputDialog("blabla");
            Treatment treatment = controllerApp.readTreatment(treatmentName);

            if (JOptionPane.showConfirmDialog(null, treatment.toString(),
                    "Blabla?", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION)
            {
                controllerApp.deleteTreatment(treatmentName);
                confirmationTime.confirmation("blabla",
                        "blabla");

你考虑过给removeRow和addRow打电话吗?您不应该从模型上下文之外调用任何fireTableXxx方法,它们不是供您使用的…是的,但要删除行,我需要知道要删除的行,addRow需要所有列的新值并插入它们。对数据库进行新的刷新调用,并从新的Jtable填充Jtable不是更容易/正确的做法吗?为什么?你不是刚做了手术吗?如果在对数据库进行操作时直接删除行或将行添加到表中,然后再次尝试调用数据库,则会更快,这样会丢弃排序顺序和可能的列配置……当我删除对象时,因此,我不确定在使用removeRow时如何填充行数。这是DefaultTableModel的一个拖拽,我个人会创建一个从AbstractTableModel扩展而来的自定义模型,然后提供接受行对象本身的add和remove方法。这样,管理起来就更容易了,因为您不需要不断地从一个对象转换到另一个对象,您可以通过某种列表进行基于对象的查找