繁体   English   中英

具有透明背景的 JavaFX 按钮

[英]JavaFX Button with transparent background

我在 JavaFX 中有一些经典的Button ,其中包含一个包含一些文本的框。

我需要没有那个框的按钮,只有文本,当我将按钮悬停或用鼠标单击按钮时,它的颜色会改变。

在 JavaFX 中,样式是通过使用 CSS 完成的。

.button{
    -fx-border-color: transparent;
    -fx-border-width: 0;
    -fx-background-radius: 0;
    -fx-background-color: transparent;
    -fx-font-family:"Segoe UI", Helvetica, Arial, sans-serif;
    -fx-font-size: 1em; /* 12 */
    -fx-text-fill: #828282;
}

.button:focused {
    -fx-border-color: transparent, black;
    -fx-border-width: 1, 1;
    -fx-border-style: solid, segments(1, 2);
    -fx-border-radius: 0, 0;
    -fx-border-insets: 1 1 1 1, 0;
}

.button:pressed {
    -fx-background-color: black;
    -fx-text-fill: white;
}

将此代码添加到 CSS 文件中,并将其保存到包含按钮的控件源文件所在的目录中。 然后在这个类中:

getStylesheets().add(getClass().getResource("nameofyourcssfile.css").toExternalForm());

然后该对象包含的所有按钮都将使用此样式类。

根据您的需要进行修改很简单。

很好的入门教程: http : //docs.oracle.com/javafx/2/css_tutorial/jfxpub-css_tutorial.htm

JavaFX 有一个Hyperlink控件,它基本上具有您正在寻找的所有功能。 它以与按钮相同的方式触发ActionEvent

Hyperlink button = new Hyperlink("Some text");
button.setOnAction(e -> System.out.println("Hyperlink clicked"));

就像网页中的链接一样,如果它被“访问”,即如果一个动作被触发,它将以不同的颜色显示。

这是您在scenebuilder中可以做到的

通过单击选择按钮。

然后在属性->样式中选择“-fx-background-color”并将值设置为“透明”

像这样

在此处输入图片说明

对于来到这里寻找删除默认按钮背景的方法的任何人,可以这样做:

button.setBackground(null);

如果你想重新设计按钮的样式,我建议像上面的答案一样使用 css。

暂无
暂无

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

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