[英]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.