具有透明背景的 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 文件,将其保存到包含按钮的控件源文件所在的目录。然后在这个 class:
getStylesheets().add(getClass().getResource("nameofyourcssfile.css").toExternalForm());
然后该对象包含的所有按钮都将使用此样式-classes.
根据您的需要进行修改很简单。
很好的入门教程:
http://docs.oracle.com/javafx/2/css_tutorial/jfxpub-css_tutorial.htm
JavaFX 有一个 Hyperlink
control,它基本上具有您正在寻找的所有功能。它以与按钮相同的方式触发 ActionEvent
s:
Hyperlink button = new Hyperlink("Some text");
button.setOnAction(e -> System.out.println("Hyperlink clicked"));
就像网页中的 link 一样,如果它 "visited" 会以不同的颜色显示,即如果对其触发了一个动作。
这是您在 scenebuilder 中的方法
点击选择按钮。
然后在属性->样式中选择“-fx-background-color”并将值设置为“透明”
像这样
对于来到这里寻找删除默认按钮背景的方法的任何人,可以这样做:
button.setBackground(null);
如果您想重新设计按钮的样式,我建议您使用 css,就像上面的答案一样。
我在 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 文件,将其保存到包含按钮的控件源文件所在的目录。然后在这个 class:
getStylesheets().add(getClass().getResource("nameofyourcssfile.css").toExternalForm());
然后该对象包含的所有按钮都将使用此样式-classes.
根据您的需要进行修改很简单。
很好的入门教程: http://docs.oracle.com/javafx/2/css_tutorial/jfxpub-css_tutorial.htm
JavaFX 有一个 Hyperlink
control,它基本上具有您正在寻找的所有功能。它以与按钮相同的方式触发 ActionEvent
s:
Hyperlink button = new Hyperlink("Some text");
button.setOnAction(e -> System.out.println("Hyperlink clicked"));
就像网页中的 link 一样,如果它 "visited" 会以不同的颜色显示,即如果对其触发了一个动作。
这是您在 scenebuilder 中的方法
点击选择按钮。
然后在属性->样式中选择“-fx-background-color”并将值设置为“透明”
像这样
对于来到这里寻找删除默认按钮背景的方法的任何人,可以这样做:
button.setBackground(null);
如果您想重新设计按钮的样式,我建议您使用 css,就像上面的答案一样。