java fx节点 位置更新_从服务线程更新JavaFX GUI

如何从JavaFX服务中安全地更新JavaFX GUI上的小部件.我记得当我使用Swing进行开发时,我曾经“稍后调用”和其他各种swing工作器实用程序,以确保在Java事件线程中安全地处理对UI的所有更新.以下是处理数据报消息的简单服务线程的示例.缺少的位是解析数据报消息的位置,并更新相应的UI小部件.正如您所看到的,服务类非常简单.

我不确定是否需要使用简单的绑定属性(如消息),或者我应该将小部件传递给我的StatusListenerService的构造函数(这可能不是最好的事情).有人可以给我一个很好的类似例子,我可以从中工作.

public class StatusListenerService extends Service {

private final int mPortNum;

/**

*

* @param aPortNum server listen port for inbound status messages

*/

public StatusListenerService(final int aPortNum) {

this.mPortNum = aPortNum;

}

@Override

protected Task createTask() {

return new Task() {

@Override

protected Void call() throws Exception {

updateMessage("Running...");

try {

DatagramSocket serverSocket = new DatagramSocket(mPortNum);

// allocate space for received datagrams

byte[] bytes = new byte[512];

//message.setByteBuffer(ByteBuffer.wrap(bytes), 0);

DatagramPacket packet = new DatagramPacket(bytes, bytes.length);

while (!isCancelled()) {

serverSocket.receive(packet);

SystemStatusMessage message = new SystemStatusMessage();

message.setByteBuffer(ByteBuffer.wrap(bytes), 0);

}

} catch (Exception ex) {

System.out.println(ex.getMessage());</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值