gpt4 book ai didi

java - 我的标签设置了任何文本,但我在屏幕上看不到它,但可以从控制台看到它

转载 作者:行者123 更新时间:2023-12-02 12:37:06 25 4
gpt4 key购买 nike

我正在使用标签。但是当我使用 label.settext("Something") 时。它在后台工作,这意味着它设置了字符串,但不会在屏幕上显示它。你可以问我你是怎么知道这个的?我使用 System.out.println(label.gettext()) 在控制台上检查了它。它给出了正确的输出。但关卡并未显示“Something”。

serialPort.addEventListener((SerialPortEvent serialPortEvent) -> {
try{
System.out.println("Your selected text for label : "+objectname);
objectname="Nothing";
label2.setText(objectname);
System.out.println("Label gettext : "+label2.getText());
}catch(Exception e){
e.printStackTrace();
}
}

它给出了 ->java.lang.IllegalStateException:不在 FX 应用程序线程上;当前线程 = EventThread COM5

最佳答案

对任何 JavaFX Node 的每次更改都必须在 FX 应用程序线程中调用。提供的异常(exception)解释了这一点。我假设 SerialPortEvent 在单独的线程中调用,这就是您收到异常的原因。要修复在 Platform.runLater() 中设置 Label 文本。

代码:

serialPort.addEventListener((SerialPortEvent serialPortEvent) -> {
try {
System.out.println("Your selected text for label : " + objectname);
objectname = "Nothing";
Platform.runLater(() -> {
label2.setText(objectname);
});
System.out.println("Label gettext : " + label2.getText());
} catch (Exception e) {
e.printStackTrace();
}
}

关于java - 我的标签设置了任何文本,但我在屏幕上看不到它,但可以从控制台看到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45098340/

25 4 0