gpt4 book ai didi

java - 如何在javaFX中设置和获取私有(private)变量?

转载 作者:行者123 更新时间:2023-11-30 07:27:05 24 4
gpt4 key购买 nike

我正在使用 javaFX 中的 radioButton 来设置参数。

public class SelectCOM extends Application {
private int comNum ;

public int getComNum() {
return comNum;
}

public void setComNum() {
launch();
}
@Override
public void start(Stage primaryStage) {

//......

//OK BUTTON
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
String str = tg.getSelectedToggle().toString();
int begin = str.indexOf("COM");
str = str.substring(begin+3, str.length()-1);
comNum = Integer.parseInt(str);
System.out.println(comNum);
primaryStage.close();
}
});
}

当我调用setComNum时,变量comNum更改为我想要的数字。但 getComNum 仅返回 0。
这是我的调用方法:

    SelectCOM selectCOM = new SelectCOM();
selectCOM.setComNum();//After clicking the OK BUTTON about 3s, a 0 printed.
int com = selectCOM.getComNum();
System.out.println(com);

最佳答案

Application 中的static launch() 方法创建 Application 子类的一个新实例,启动JavaFX 工具包,并在其创建的实例上调用 start()。 (对 start() 的调用是在 FX 应用程序线程上进行的。)

因此,您正在通过调用 launch() 创建的实例中的字段上设置 comNum 值,但您正在调用 getComNum() 在您自己创建的实例上(即在不同的对象上);因此您无法获得正确的值。

另请注意 launch() 方法,以及您的 setComNum() 方法,直到 JavaFX 平台退出(默认情况下,这是用户关闭时)才会完成最后一个窗口)。

关于java - 如何在javaFX中设置和获取私有(private)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36676739/

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