【问题标题】:Calling A JFrame method from Another JFrame从另一个 JFrame 调用 JFrame 方法
【发布时间】:2013-06-06 16:28:29
【问题描述】:

我也在寻找解决方案。目前,我的 netbeans 项目中有 2 个JFrames 和 1 个实用程序类。我不是java专家,所以请多多包涵。我已尝试查看 java 文档和此站点,但似乎无法找到解决我的问题的方法。

这是场景:

我的启动器类启动名为 MainForm.javaJFrame 表单,然后将组件初始化到屏幕上。在这个表单上,我有一个按钮,可以启动一个名为 ConfigEditor.java 的新表单。此表单用于编辑配置文件。我在这个表单上有一个 Save 按钮,我基本上想要做的是一旦我点击保存获取 MainForm.java 来调用一个方法来填写正确的组件使用新值。

这是一个示例,以下是 ConfigEditor.java 上的“保存”按钮中的一些代码:

if(reply == JOptionPane.YES_OPTION){
        try {
            Utilities.writeConfigFileBasic(ExecutionLists.getText(),DefaultResultsFile.getText(), 
                    DefaultTestDir.getText(), Environments.getText(), ResultsViewerFile.getText());
            ConfigTextArea.append(Utilities.readConfigFile());
            JOptionPane.showMessageDialog(rootPane, "Saved");

现在,在最后一行之后,我想调用类似MainForm.initMyComponents() 的东西;因为这种方法存在于MainFormJFrame 中,但它不会让我调用它。该方法的目的是使用从配置文件中提取的数据填充某些字段。 很抱歉,如果我没有很好地解释它,我对 Java 还很陌生,如果您需要任何澄清,请告诉我,我会尽力澄清它。

【问题讨论】:

标签: java swing methods jframe multiple-instances


【解决方案1】:

您可以在构造时简单地将 MainForm 的引用传递给 ConfigEditor 吗?例如:

... //Code fired by clicking the button you mentioned which is in class MainFrame
ConfigEditor configEditor = new ConfigEditor(this); //This would be a reference to your MainFrame

有了这个参考,你就可以在 MainFrame 类中调用你想要的方法。

【讨论】:

  • 我一回到家就试一试。我不确定那是如何工作的?这会进入 MainForm 代码吗?
  • 没错。 'ConfigEditor' 的构造函数将如下所示:'ConfigEditor(MainFrame mainFrame)' 然后你可以调用 'mainFrame.initMyComponents()'
  • 了不起的迈克尔非常感谢您的建议,您现在帮助我更了解它。抱歉,我不能支持你的回答,我没有足够的代表。
  • 没问题。这就是stackoverflow的全部内容!祝你好运。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 2012-03-20
  • 1970-01-01
相关资源
最近更新 更多