当前位置: 首页 > 知识库问答 >
问题:

自定义JavaFX按钮形状

景俊语
2023-03-14

我不是JavaFX的资深程序员,想请教一下。如何在JavaFX中为按钮制作或设置不同的形状?默认情况下,按钮具有这些圆角矩形形状。我想做一个按钮形状像下面的图片,一个L形按钮。

我已经谷歌了这个话题很多次,但仍然没有找到解决办法。

你能帮助我吗?

共有3个答案

臧友樵
2023-03-14

尝试制作该形状的图像文件并使用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();
}

它将显示一个大的红色按钮。但是使用你的图像。

费锋
2023-03-14

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

楚俊杰
2023-03-14

有一种方法可以去掉灰色的背景色。你可以设置它为透明的,然后你的按钮将只是图像。在你的例子中,x . set style("-FX-background-color:transparent ")x是你的按钮。

 类似资料:
  • 创建自定义按钮形状很容易完成,但是如何确保新形状也是按钮本身的“碰撞框”? 在本例中,我创建了两个 hexagnol 形状的按钮,并将它们正确对齐。问题是按钮的碰撞框仍然是矩形的,当您将鼠标从上部按钮移动到下部按钮时,您会注意到碰撞框是严格矩形的,并且使自定义形状变得毫无用处。 有没有办法创建自定义碰撞形状或碰撞检查? 完整的工作示例:

  • > 标高,同时具有自定义可绘制。 在用户触摸的地方启动涟漪效果。

  • 我正在用JavaFX制作一个2D游戏,当检测到冲突时,我得到的结果相当不准确,因为玩家精灵被设置为矩形的填充,因此没有预期的边框。有没有办法让我自己的形状尽可能准确? 我的另一个想法是检查碰撞的像素是否透明,然后如果它是,则不会结束游戏。有谁知道一种方法可以获得碰撞像素的坐标,以便从那里我可以使用PixelReader进行检查? 如果有人知道更好的方法,请告诉我! 谢谢,伊森

  • 问题内容: 我想在UITextField上创建自定义清除按钮,即使用rightView并将图像放在此处,问题是将原始的清除按钮事件附加到该自定义rightView上。 在Objective-C中,我可以这样做: 现在如何将其转换为Swift?或任何解决方法? 问题答案: 您可以将自定义按钮添加为类似这样的右视图

  • 我正在努力修改MUI next(v1)中的按钮颜色。 我该如何设置muitheme,使其行为与bootstrap相似,这样我就可以用“btn危险”表示红色,“btn成功”表示绿色? 我尝试了自定义,但它不能正常工作(悬停颜色不会改变),而且似乎是重复的。我有什么选择?

  • 问题的核心是,我不能刷新或更改一个场景的节点的内容(这里是TablesMain)从另一个类(这里是NamePriceCell)。 我正在使用主StackPane(TableMainController扩展StackPane)构建和应用程序,其中包含其他节点,其中一些节点是ListView。在一个特定的ListView(比如“readitemslistview”)中,我创建了一个自定义ListCel