繁体   English   中英

自定义 JavaFX 按钮形状

[英]Custom JavaFX button shapes

我不是JavaFX的资深coder,想请教一下。 如何为 JavaFX 中的按钮制作或设置不同的形状? 默认情况下,按钮具有这些圆角矩形形状。 我想制作一个形状如下图所示的按钮,一个 L 形按钮。

我已经在这个主题上搜索了很多次,但仍然没有找到解决方案。

你能帮我吗?

图片

有一种方法可以摆脱灰色背景颜色。 你可以将它设置为tranparent然后你的按钮将只是图像。 在你的情况下,它将是x.setStyle(“ - fx-background-color:transparent”)x是你的按钮。

您还可以将-fx-shape CSS属性用于SVG路径字符串。 通过指定区域采用该形状而不是矩形或圆角矩形。

使路径节点可点击

您可以使用Path节点制作 L 形并使其可点击。

这是您可以尝试的单个 class javafx 应用程序。

申请.java

public class App extends Application {
    
    @Override
    public void start(Stage stage) {
        
        Path path = new Path(new MoveTo(0, 0), new HLineTo(200), new VLineTo(-100),
                new HLineTo(100), new VLineTo(-200), new HLineTo(0), new ClosePath());
        path.setFill(Color.AQUAMARINE);
        
        path.setOnMouseClicked((e) -> {
            System.out.println("do something");
        });
        
        var scene = new Scene(new StackPane(path), 640, 480);
        stage.setScene(scene);
        stage.show();
    }
    
    public static void main(String[] args) {
        launch();
    }
    
}

结果:

在此处输入图像描述

尝试制作该形状的图像文件并使用Node.setGraphic()方法。 例:

public void start(Stage primaryStage){

String u = "http://www.clker.com/cliparts/9/1/5/2/119498475589498995button-red_benji_park_01.svg.med.png";
    Image i = new Image(u);
    Button x = new Button();
    x.setGraphic(new ImageView(i));
    BorderPane y = new BorderPane();
    y.setCenter(x);

    primaryStage.setScene(new Scene(y, 400, 400));
    primaryStage.show();
}

它会显示一个大红色按钮。 但是使用你的形象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM