Javafx,有没有一种方法可以检查按钮的状态并根据其状态执行if语句?

Javafx,有没有一种方法可以检查按钮的状态并根据其状态执行if语句?,java,javafx,Java,Javafx,在Javafx中,有一个为按钮设置颜色/样式的选项,例如 button.setStyle-fx-background-color:红色; 是否有任何语法用于检查按钮颜色的按钮样式 基本上我想做一些事情,比如: if button.style-fx-background-color:红色{ 某物 } 是的,您可以通过.contains或正则表达式进行匹配。例如,使用getStyle进行匹配,在您的示例中,它将是button.getStyle.contains-fx-background-color

在Javafx中,有一个为按钮设置颜色/样式的选项,例如

button.setStyle-fx-background-color:红色; 是否有任何语法用于检查按钮颜色的按钮样式

基本上我想做一些事情,比如:

if button.style-fx-background-color:红色{ 某物 } 是的,您可以通过.contains或正则表达式进行匹配。例如,使用getStyle进行匹配,在您的示例中,它将是button.getStyle.contains-fx-background-color:red

但是,请记住,setStyle和getStyle都只引用内联样式。因此,它们不会在附加的CSS文件中包含通过CSS选择器传递的样式


通常,使用视觉属性来确定语义属性并不被认为是一种好的做法。如果你的按钮应该显示一种特殊的行为,考虑扩展按钮类,并将这些类添加为适当的属性。

你当然可以做到这一点,但我能问一下为什么吗?这看起来像是一个游戏。我正在做一个战舰游戏。检查按钮的颜色是检查哪些按钮已经按下的一种简单方法。与其使用视图的状态来控制游戏的流程,不如使用一个表示游戏的模型,视图更新以显示模型的状态。是的,我做了一点,因为我不知道如何检查颜色:我制作了一个从0到100的数组,因为它是一个10x10的网格,并从数组中选择一个随机数。现在我需要弄清楚如何放置船只,如何恰当地展示它们,以及如何与它们互动。如果他们问问题,你应该对你在这里做的事情做一些解释,因为他们不明白为什么他们所做的不起作用,而不解释你所做的只会让他们更加困惑。你也可以看看
Button button = new Button();
String[] styles = button.getStyle().split(";");
for(String style : styles){
   if(style.contains("-fx-background-color")){
       String color = style.split(": ")[1]; // the color of the button
   }
}