- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
很早就提出了一个问题,但没有很好地布局我的代码,整个问题有点困惑,然后当我更改了代码但仍然遇到相同的问题时,问题仍然存在,但是我决定重新-用我的代码提出问题,代码布局更加整洁,这样您就可以看到重要的部分。
这是最初问题的链接:
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/
我是一名优秀的程序员,十分优秀!