在C#中,这是通过使用委托和事件来完成的,这里是链接:Passing Data between Windows Forms。
我的要求是这样的。用户必须通过将数据库中的所有项目加载到新表单JTable
来搜索项目代码,通过单击主表单(或任何其他表单)中的按钮来显示此新表单。在此之后,用户双击表格中的特定项目代码,该项目代码将传递到主表单(或任何其他表单的)文本字段并关闭当前表单。
这是c#https://www.youtube.com/watch?v=_lPkc1YV2vQ&feature=youtu.be
的输出答案 0 :(得分:1)
第二个窗口不应该是JFrame,而应该是JDialog,可能是模态的。如果它是模态的,则调用窗口将知道第二个对话框窗口何时关闭,因为程序流从显示对话框时立即停止在调用代码处(想想JOptionPanes如何工作)并且在第二个对话框窗口关闭之前不会恢复。您可以从与对话框窗口关联的对象中提取相关数据,并且可以通过调用适当的getter方法等简单方法获取此信息。
如,
JDialog someDialog = new JDialog(myJFrame, "My Dialog", ModalityType.APPLICATION_MODAL);
someDialog.add(myContentPaneWithMyGui);
someDialog.pack();
someDialog.setVisible(true);
// here code flow stops until the dialog is no longer visible.
// now call my getter to extract data
SomeType someData = myContentPaneWithMyGui.getSomeData();
答案 1 :(得分:1)
如果您想坚持使用事件/委托方式,可以考虑使用BeansBinding。
它要求您的模型在数据更改时触发事件,并在这些模型上将Swing GUI元素寄存器添加为propertyListeners。