Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从另一个JFrame调用JFrame方法_Java_Swing_Methods_Jframe_Multiple Instances - Fatal编程技术网

Java 从另一个JFrame调用JFrame方法

Java 从另一个JFrame调用JFrame方法,java,swing,methods,jframe,multiple-instances,Java,Swing,Methods,Jframe,Multiple Instances,我也在寻找解决我问题的办法。目前,我的netbeans项目中有2个JFrames和1个实用程序类。我不是java方面的专家,所以请容忍我。我已经在这个网站上浏览了java文档,但似乎找不到解决问题的方法 以下是场景: 我的launcher类启动名为MainForm.java的JFrame,然后表单在屏幕上初始化组件。在这个表单上,我有一个按钮,它启动一个名为ConfigEditor.java的新表单。此表单用于编辑配置文件。我在这个表单上有一个Save按钮,我基本上想做的是单击Save获取Mai

我也在寻找解决我问题的办法。目前,我的netbeans项目中有2个
JFrames
和1个实用程序类。我不是java方面的专家,所以请容忍我。我已经在这个网站上浏览了java文档,但似乎找不到解决问题的方法

以下是场景:

我的launcher类启动名为MainForm.java的
JFrame
,然后表单在屏幕上初始化组件。在这个表单上,我有一个按钮,它启动一个名为ConfigEditor.java的新表单。此表单用于编辑配置文件。我在这个表单上有一个Save按钮,我基本上想做的是单击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()
;由于此方法存在于
main表单中
JFrame
,但它不允许我调用此方法。该方法的目的是使用从配置文件提取的数据填充某些字段。
很抱歉,如果我没有很好地解释它,我对Java是相当陌生的。如果您需要任何澄清,请告诉我,我会尽力澄清。

在构建ConfigEditor时,您能简单地将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类中调用所需的方法。

使用CardLayout而不是多个实例,这可能会让Neweesee陷入地狱。我认为这完全是主观的。我相信在我的应用程序中,使用2帧效果更好。我一到家就会给它拍一张照片。我不知道这是怎么回事?这会进入主窗体代码吗?这是正确的。“ConfigEditor”的构造函数将如下所示:“ConfigEditor(大型机大型机)”然后您可以调用“MainFrame.initMyComponents()”非常感谢您的建议,您现在正在帮助我进一步理解它。对不起,我不能投你的赞成票。我没有足够的代表。没问题。这就是stackoverflow的意义所在!祝你好运