我正在创建一个基本的Swing应用程序。其中我有一个JFrame
(有一个JTable
)。这个窗口有添加记录按钮,我打开一个JDialog
窗口,里面有很少的数据字段。使用后输入这些字段的值。我需要将这些信息作为JTable
中的记录添加到JFrame
。
为此,我打开JFrame
窗口。一旦用户按下“添加”按钮。 JDialogbox
窗口打开(JFrame
仍然在后台打开)。然后用户输入一些信息,然后需要传回JFrame
。
如何在不创建新JFrame
对象的情况下执行此操作。有没有办法在JDialog
框构造函数中使用父元素?
(javax.swing.JFrame parent, boolean modal)
答案 0 :(得分:1)
这是一个代码框架,它显示了使用框架上的回调方法实现所需内容的方法。
public class DataBean{
// keep all variables that needs to be transferred
}
public class MyFrame extends JFrame {
// Frame code here
public void openDialog() {
new MyDialog(this,true).setVisible(true);
}
public void addRowToTable(DataBean data) {
// add row to table from data
}
}
public class MyDialog extends JDialog {
// Dialog display code
DataBean data = new DataBean();
// populate DataBean object from dialog fields
// dispose dialog
// call method to pass
((MyFrame)getOwner()).addRowToTable(data);
}
希望这有帮助。