java - javafx不同样式的按钮

标签 java javafx

我试图让一个按钮在单击时更改其样式,我可以安排自己从 style1 更改为 style2,现在我无法弄清楚将其更改为第三种样式(style3)。我使用了 if else 语句,现在我正在考虑使用 Switch-case 作为第三个语句。

style = true;
    btn.setOnAction((ActionEvent event) ->
    {
    System.out.println("Hello!");
        if (style == true) {
    btn.getStyleClass().remove("button1");
    btn.getStyleClass().add("button2");
        }
        else {
    btn.getStyleClass().remove("button2");
    btn.getStyleClass().add("button1");
        }

        style=!style;
    });

最佳答案

可能有几十种方法可以做到这一点。这是其中之一:

private int currentStyle = 0 ;

private String[] styles = { "button1", "button2", "button3" };

// ...

btn.setOnAction(e -> {
    btn.getStyleClass().removeAll(styles);
    currentStyle = (currentStyle + 1) % styles.length ;
    btn.getStyleClass().add(styles[currentStyle]);
});

关于java - javafx不同样式的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40131679/

相关文章:

java - 为什么在 FXML 中添加两个 ColumnConstraint?

JavaFX:GridPane 中的 ComboBox 导致不必要的大小调整

java - 为什么当我改变场景时随机边界的值会重置?

java + google web 工具包(google apps 引擎)

java - JavaFX 中的警报 - 导出 jar 后图标不显示

java - 使用正则表达式分割具有多个条件的字符串

java - 使用后退键时是否可以强制重新绘制 Activity ?

image - JavaFX - 资源路径和加载图像

javax.crypto.BadPaddingException : error

java - 将十六进制字符串转换为字节中的二进制字符串会抛出 NumberFormatException