悬停效果超过图标

时间:2013-11-22 11:15:41

标签: javafx-2 javafx javafx-8

我想为设置面板导航创建这样的按钮:

enter image description here

你能告诉我如何在图标上创建这种悬停效果吗?对我来说最困难的部分是创建看起来像图片的CSS代码。

3 个答案:

答案 0 :(得分:29)

虽然上面的答案有效。您应该使用伪选择器在CSS中完全执行此操作:

的java:

btnsa.getStyleClass().add("myButton");

的CSS:

.myButton {
  -fx-background-color:transparent;
}

.myButton:hover {
  -fx-background-color:#dae7f3;
}

答案 1 :(得分:13)

您必须使用MouseEntered和MouseExited事件来获取图标上的悬停效果。 试试这个工作.........

btnsa.setStyle("-fx-background-color:transparent;");
    btnsa.setGraphic(new ImageView(new Image(getClass().getResourceAsStream("JavafxSm.gif"))));

    btnsa.setOnMouseEntered(new EventHandler<MouseEvent>
    () {

        @Override
        public void handle(MouseEvent t) {
           btnsa.setStyle("-fx-background-color:#dae7f3;");
        }
    });

    btnsa.setOnMouseExited(new EventHandler<MouseEvent>
    () {

        @Override
        public void handle(MouseEvent t) {
           btnsa.setStyle("-fx-background-color:transparent;");
        }
    });

以上代码的一些快照......

enter image description here

enter image description here

答案 2 :(得分:1)

相反,如果您的FXML文件与CSS连接,则只能在CSS中执行1行代码

yourButtonId:hover{-fx-background-color: #6695e2}