gpt4 book ai didi

java - 在选项(子)窗口中单击 "Apply"应在 HUD(父)窗口中设置变量,但不会

转载 作者:行者123 更新时间:2023-12-01 14:49:25 26 4
gpt4 key购买 nike

很早就提出了一个问题,但没有很好地布局我的代码,整个问题有点困惑,然后当我更改了代码但仍然遇到相同的问题时,问题仍然存在,但是我决定重新-用我的代码提出问题,代码布局更加整洁,这样您就可以看到重要的部分。

这是最初问题的链接:

Cannot get variable from Child back to Parent in JAVA (Options Window)

基本上我有各种各样的类(class)。其中三个是:

Menu()
HUD()
Options()

我的主类是 Menu(),从 Menu() 中,HUD() 通过按钮打开。菜单不会给我带来任何问题,但是 HUD() 和 Options() 会造成问题。

Options()是从HUD()内部打开的,里面有5个按钮组,其中包含14个选项。当用户选择按钮组的每个选项时,他然后单击“应用”,并且为每个组选择的单选按钮的值(字符串值)应分配给 HUD() 上的给定变量。但是,当单击“应用”时,它会清除所有变量,或者这就是它看起来正在做的事情。

在 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);
}

最佳答案

让我们看一下一种方法:

public void setTime(String strTime) {
strTime = o.getTime();
txtTime.setText(strTime);
}

您可以从 Option 类中调用它

hud.setTime(btnTxtTime);

但是 setTime 会忽略您传入的值并立即用 o.getTime() 覆盖它。

很难从您发布的内容中看出,但您可能对方法调用和参数的工作原理感到困惑。

关于java - 在选项(子)窗口中单击 "Apply"应在 HUD(父)窗口中设置变量,但不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15035079/

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