我有一些在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
setStyle()
方法来设置 Button
的样式。但我不知道为什么你要使用 Button
而不是 Hyperlink
。 - ZephyrJavaFX有一个名为Hyperlink
控件,基本上具备您所寻找的所有功能。它与按钮一样会触发ActionEvent
事件:
Hyperlink button = new Hyperlink("Some text");
button.setOnAction(e -> System.out.println("Hyperlink clicked"));
就像网页中的链接一样,如果它已经被“访问”了,也就是说,它上面发生了某些动作,那么它会以不同的颜色显示。
如果有人想要删除默认按钮背景的方法,可以按照以下步骤进行:
button.setBackground(null);