如何将我的按钮放在前面

时间:2017-05-29 22:15:26

标签: javafx javafx-8

我有一个三角形的小按钮。然而,它看起来更像是一个二维形状,并没有真正的按钮感觉。请看下面的代码:

private String style = 
        "-fx-min-width: 10px; " +
        "-fx-min-height: 10px; " +
        "-fx-background-color: grey;";

Button btn = new Button();
btn.setShape(new Polygon(new double[]{
        0.0, 0.0,
        2.0, 3.0,
        0.0, 6.0
        }));

btn.setStyle(style);
btn.toFront();

如何让它看起来更像是按钮而不是平面2D形状。请注意,我无法增加此按钮的大小。是否有任何替代方法可以使小尺寸的形状看起来更像按钮?

1 个答案:

答案 0 :(得分:1)

实际上这是样式的问题,CSS尤其超过JavaFX。 您可以更改按钮的样式并保持相同的形状(三角形)。

例如,如果我应用我从here

借来的CSS style
String style = 
            "-fx-background-color: "
            + "linear-gradient(#686868 0%, #232723 25%, #373837 75%, #757575 100%),"
            + "linear-gradient(#020b02, #3a3a3a),"
            + "linear-gradient(#9d9e9d 0%, #6b6a6b 20%, #343534 80%, #242424 100%),"
            + "linear-gradient(#8a8a8a 0%, #6b6a6b 20%, #343534 80%, #262626 100%),"
            + "linear-gradient(#777777 0%, #606060 50%, #505250 51%, #2a2b2a 100%);"
            + "-fx-background-insets: 0,1,4,5,6;"
            + "-fx-background-radius: 9,8,5,4,3;"
            + "-fx-padding: 15 30 15 30;" 
            + "-fx-effect: dropshadow( three-pass-box , rgba(255,255,255,0.2) , 1, 0.0 , 0 , 1)";

保留你的代码:

Button btn = new Button();
btn.setShape(new Polygon(new double[]{
                         0.0, 0.0,
                         2.0, 3.0,
                         0.0, 6.0}));                        
btn.setStyle(style);

它将赋予这种风格:

some style

虽然你原来的是:

original style

请注意,您可以在该网站上看到按钮(3D类型)的其他示例(样式)(这取决于您的偏好)。