代码之家  ›  专栏  ›  技术社区  ›  kaiya

在其他类更改数据后更新jtable

  •  0
  • kaiya  · 技术社区  · 8 年前

    我正在努力更新表的内容。

    实际上,代码的作用是:它用一些jtextfield打开一个jdialog(没有内部类)。

    提交新数据后,它直接可用于保存tab2 jtable的类。当我再次打开同一表行的jdialog时,该表将被正确更新,但我希望它在EditData提交数据后立即更新。

    我确实理解为什么现在没有,但现在我被困住了。

    如果我在EditData中定义了一些Boolean Success(),它将告诉我输入是否正确;如何从主类访问它,那么如何确定EditData是关闭的,还是更好的,是否按下了Submit按钮,甚至更好?

        tab2.addMouseListener(new MouseListener() {
            public void mouseClicked(MouseEvent e) {
                if(e.getClickCount()==2) {
                    new EditData(params);
                    tab2.setValueAt(newData, location, location);
                } 
            }
        });
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Hovercraft Full Of Eels    8 年前

    我怎么知道EditData是否关闭,

    • 使之成为 情态动词 对话框,以当前调用父窗口为模式。这样,当前的代码流将在使该对话框可见的位置停止,并且在该对话框不再可见之前不会恢复——行 就在你能看到的地方 .
    • 所以没有EditData Make 它本身 可见,即,没有 setVisible(true) 在其构造函数中。相反,让调用代码在需要时在何处创建实例,然后在需要时在何处将其设置为可见。

    或者更好,无论是按下提交按钮,还是——甚至更好——如果我在editData中定义了一些boolean success(),它将告诉我输入是否正确;

    • 创建模式对话框的一种方法是使用joptionpane,如果使用 JOptionPane.showConfirmDialog(mainJFrame, editData, "Title", JOptionPane.OK_CANCEL) 此对话框将返回一个int,告诉您按下了哪个按钮。
    • 为了实现这一点,EditData需要是一个jpanel,它可以放在joptionpane中(或者放在您自己的jdialog中,如下面所述,如果您希望这样做的话)。
    • 或者,如果您喜欢滚动自己的JDialog,请再次使用modal。为提交或取消提供jbuttons。在使对话框可见时,将对话框对象的布尔字段设置为false,然后在提交时按,将该字段更改为true。在按任何按钮时,使对话框不再可见。这样调用代码就可以在对话框不再可见时查询其状态。

    如何从主类访问它?

    使EditData成为类中的字段,以便在正确处理后查询其状态。