javafx按钮的视觉效果不在鼠标点击上

时间:2015-06-11 08:43:46

标签: java javafx

我有一些javafx按钮,它们向代理发送MQTT消息。当按钮状态改变时(ON为OFF或OFF为ON),将发送消息。该按钮还订阅了它发送的消息,我想在消息到达时更改按钮的可视指示。 我想这样做的原因是因为消息也可能来自另一个来源(网络中的另一个设备)。我想显示按钮中最后一条消息的状态。 如何确保鼠标事件不会改变按钮的视觉识别,而另一个事件确实会改变按钮的视觉识别?

我现在有了这个:

public class SlideCheckBox extends CheckBox implements RelayAwareInterface, MqttMessageSubscriberInterface {
    private String relayName;

    public SlideCheckBox(final String text) {
        super(text);
        getStylesheets().add(getClass().getResource("/css/slidecheckbox.css").toExternalForm());
        setSkin(new SlideCheckBoxSkin(this));
    }

    public void withRelay(String relay) {
        relayName = "relay/" + relay;
    }

    @Override
    public void receiveMessage(String message) {
        if (message.equals("CLOSED") && !isArmed()) {
            fire();
        } else if (message.equals("OPEN") && isArmed()) {
            fire();
        }
    }

    @Override
    public String getName() {
        return relayName;
    }

    @Override
    public String getState() {
        return selectedProperty().getValue() ? "CLOSED" : "OPEN";
    }
}

0 个答案:

没有答案