如何使TabPane边框变为绿色

javafx-2 javafx javafx-8

2005 观看

2回复

68 作者的声誉

我从JavaFX教程中实现了拖放示例。

当我在目标TabPane上拖动一个标签时,我设法添加了效果:

tabPane.setOnDragEntered(new EventHandler<DragEvent>() {
            @Override
            public void handle(DragEvent event) {
                /* the drag-and-drop gesture entered the target */
                /* show to the user that it is an actual gesture target */
                if (event.getGestureSource() != tabPane
                        && event.getDragboard().hasString()) {
                    tabPane.setCursor(Cursor.MOVE);


                    tabPane.setEffect(new Glow());
                }

                event.consume();
            }
        });

        tabPane.setOnDragExited(new EventHandler<DragEvent>() {
            @Override
            public void handle(DragEvent event) {
                /* mouse moved away, remove the graphical cues */
                tabPane.setCursor(Cursor.DEFAULT);

                tabPane.setEffect(null);

                event.consume();
            }
        });

但是我想将目标TabPane的边框设置为绿色,而不是添加Glow效果。这可能吗?

作者: Peter Penzov 的来源 发布者: 2013 年 7 月 16 日

回应 (2)


3

6185 作者的声誉

您可以设置样式TabPane(之后将其设置为空白字符串):

 tabPane.setStyle("-fx-padding: 1; -fx-background-color: green, -fx-control-inner-background; -fx-background-insets: 0, 1;");

或者,如果你想要非常酷,你可以在CSS样式表中完成所有操作(并在开始拖动时将styleClass“dragTab”添加到所有Tab窗格中(并在拖动结束时删除)。它消除了两个鼠标听众至少。

.dragTab:hover {
    -fx-padding: 1; 
    -fx-background-color: green, -fx-control-inner-background; 
    -fx-background-insets: 0, 1;
}
作者: Nick Rippe 发布者: 16.07.2013 04:54

0

557 作者的声誉

这项工作对我来说:

tabPane.setStyle("-fx-border-style:solid; -fx-padding: 1; -fx-background-color: green;");

或者使用-fx-border-style属性的其他可能值,例如double,dashed,...

作者: M2E67 发布者: 02.02.2019 10:06
32x32