无法在JAVA(选项窗口)中从子变量返回到父变量

无法在JAVA(选项窗口)中从子变量返回到父变量,java,class,netbeans,methods,sql-server-mars,Java,Class,Netbeans,Methods,Sql Server Mars,开始-下午3:00 更新时间:下午1-5:36 Option()类中的Apply按钮: 这是Option()类的一部分 这是Option()类中的一个方法: 这是如何从HUD()中打开选项() 这是我的HUD()类的开始: 这是HUD()中的方法,它从Options()中获取JButtons的值: 但是,每当我单击“应用”时,options()中设置的选项就不会在HUD()中显示它们的文本字段中设置://很难浏览非常长的代码示例,但是请查看cmdApplyActionPerformed()方法。

开始-下午3:00

更新时间:下午1-5:36

Option()类中的Apply按钮:

这是Option()类的一部分

这是Option()类中的一个方法:

这是如何从HUD()中打开选项()

这是我的HUD()类的开始:

这是HUD()中的方法,它从Options()中获取JButtons的值:


但是,每当我单击“应用”时,options()中设置的选项就不会在HUD()中显示它们的文本字段中设置://

很难浏览非常长的代码示例,但是请查看
cmdApplyActionPerformed()
方法。您正在创建一个
新的HUD()
并在其中设置值。。。然后什么也不做

如果您试图使用“应用”按钮修改现有的
HUD
对象,则您的类需要在某个地方对其进行引用。如果
HUD
是创建
Options
的父类,请尝试让
Options
在其构造函数中存储对父类的引用。然后,当您在
选项中执行类似的更改时,您可以在父变量上执行更改,而不是在没有效果的新变量上执行更改

private HUD parent;

/**
 * Creates new form Profile
 */
public Options(HUD parent) {
    initComponents();
    this.parent = parent;
}
然后,在事件处理程序中,您可以

parent.setTime(btnTxtTime);
parent.setTemp(btnTxtTemp);
parent.setSurface(btnTxtSurface);
parent.setWeather(btnTxtWeather);
parent.setRadiation(btnTxtRadiation);
dispose();

据我所知,HUD是您的“主窗口”,用户可以从该窗口访问此选项框

但当你申请时,你是在一个新的HUD上设置属性,而不是以前的那个

要解决这个问题,您需要在配置窗口中为主窗口设置一个句柄,以便您可以对其设置属性

在您的hud中:

ConfigFrame config = new ConfigFrame();
config.setHUD(this);
config.setVisible(true);
在您的配置中

private HUD hud;

public void setHUD(HUD hud){
   this.hud = hud;
}

然后只需省略
HUD HUD=new HUD()

HUD()不是我的主类,这是我的菜单(),它将用户带到HUD(),但我完全明白你的意思,并且已经考虑了很多次,但是我可以找到搜索的内容,我现在将尝试并实现它,然后会回复你!所有这些都设置好了,必须通过并创建私有菜单,一些私有选项,如更改创建的错误,现在这样做,所有加载等等,但仍然没有更改HUD上的变量:/Adam,我已经看到了你问题的所有三个版本,我不得不说(没有任何粗鲁的意图),你需要尽快切入正题。理想情况下,你的第一句话应该陈述问题。现在还不太清楚你想做什么,但是如果这是我认为的,那么就搜索事件和事件监听器,你的hud可以有一个事件监听器,在选项改变时监听触发的事件,这并不意味着粗鲁,但我已经解释了每个选项的要点。我不明白如何才能解释我的要求。。。我用三种不同的方式重申了这一点:/尽管你提到的听起来像是我需要的!这是不真实的,让我很沮丧,我只是不理解这个方法,我已经声明我是Java的新手,但是不断有人告诉我同样的事情,但它不起作用
    public abstract class HUD extends javax.swing.JFrame implements Runnable {


private Options o;
 private HUD hud;

public HUD(Options o) {


    initComponents();
    this.o = o;
       public void setTime(String strTime) {

    strTime = o.getTime();
    txtTime.setText(strTime);
}
private HUD parent;

/**
 * Creates new form Profile
 */
public Options(HUD parent) {
    initComponents();
    this.parent = parent;
}
parent.setTime(btnTxtTime);
parent.setTemp(btnTxtTemp);
parent.setSurface(btnTxtSurface);
parent.setWeather(btnTxtWeather);
parent.setRadiation(btnTxtRadiation);
dispose();
ConfigFrame config = new ConfigFrame();
config.setHUD(this);
config.setVisible(true);
private HUD hud;

public void setHUD(HUD hud){
   this.hud = hud;
}