gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:50:39 25 4
gpt4 key购买 nike

开始 - 下午 3:00

更新 1 - 下午 5:36

在 Option() 类中应用按钮:

     private void cmdApplyActionPerformed(java.awt.event.ActionEvent evt) {                                         
// TODO add your handling code here:

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


}

这是 Option() 类的一部分。

    public class Options extends javax.swing.JFrame {

public String btnTxtTime;
public String btnTxtTemp;
public String btnTxtSurface;
public String btnTxtWeather;
public String btnTxtRadiation;
public static boolean ApplyClicked;

/**
* Creates new form Profile
*/

private HUD hud;

public Options(HUD hud) {
initComponents();
this.hud = hud;


}

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

    public String getTime() {

if ("Day".equals(grpTimeOfDay.getSelection())) {
btnTxtTime = "Day";
return this.btnTxtTime;
}

if ("Night".equals(grpTimeOfDay.getSelection())) {
btnTxtTime = "Night";
return this.btnTxtTime;
}
return null;

}

这就是从 HUD() 中打开 Options() 的方式:

     private void cmdOptionsActionPerformed(java.awt.event.ActionEvent evt) {                                           
// TODO add your handling code here:

Options o = new Options(hud);
this.getLocation(p);
o.setLocation((int) p.getX() + 100, (int) p.getY() + 100);
o.setVisible(true);
}

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

    public abstract class HUD extends javax.swing.JFrame implements Runnable {


private Options o;
private HUD hud;

public HUD(Options o) {


initComponents();
this.o = o;

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

       public void setTime(String strTime) {

strTime = o.getTime();
txtTime.setText(strTime);
}

但是,每当我单击“应用”时,Options() 中设置的选项就不会在 HUD() 中显示它们的 TextFields 中设置,就像它们应该的那样:/

最佳答案

很难浏览非常冗长的代码示例,但是请查看您的 cmdApplyActionPerformed() 方法。您正在创建一个new HUD()并在其中设置值...然后完全不对其进行任何操作。

如果您尝试使用“应用”按钮来修改现有的 HUD 对象,您的类需要在某处引用它。如果 HUD 是创建 Options 的父类,请尝试让 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();

关于java - 无法在 JAVA 中将变量从子级返回到父级(选项窗口),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15027696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com