【发布时间】:2017-12-14 09:42:17
【问题描述】:
基本上,我正在创建一个同步 HUE 灯的程序,但我无法合并侦听器来检测灯桥何时与我的 JavaFX GUI 连接;我希望它在侦听器检测到它已连接时将标签从“未连接”切换为“已连接”。
这是程序结构的一些伪代码。
public class MainClass extends Application {
boolean connected;
Label label;
public static void main(){
launch(args); //Neccesary to start JavaFX
}
public static void start(){
ConnectToHueLights(); //Takes abt 30s to connect to bridge
Label label = “Searching for connection”; //Message while connecting
Window.addLabel(); //Adds label to hue lights
Window.show(); //Makes window visible
}
private HueLightsListener(){
//Once connected, can do whatever inside of a void method inside of this Listener
private void onConnectionResponds(){
label = “Connected”
connected = true;
}
}
public void ConnectToHueLights(){
create new Listener();
}
基本上,只要监听器处于活动状态,标签就不会改变,我不知道该怎么做。
谢谢!
【问题讨论】:
-
我很帅,代码甚至无法编译...
-
是的,我知道,这是伪代码。我只想知道为什么 JavaFX 不允许我从 start() 方法之外更新标签以及如何去做。由于 GUI 有多大以及 HUE 灯的工作方式,实际代码很复杂
-
您是否在
Listener中添加了System.out.println("Hello!);以确保它弹出? -
不,我知道正在调用侦听器,因为我可以执行 System.out.println("Connected");你是对的,我认为它没有更新,因为它不在 start() 方法中,但是你建议如何更新它或让监听器传播到 start() 方法?
标签: java user-interface javafx philips-hue light