我想换一个按钮的造型,这里的大部分线程,并在互联网上的文章说明了如何使用Java代码,我不认为这是一个真正好的解决办法做了,有什么办法,例如向设置一些文本和仅使用FXML(无CSS),它里面的所有图像的按钮?
Answer 1:
只使用FXML解决方案
作为tarrsalah指出,CSS是这样做的推荐的方法,虽然你也可以做到这一点在FXML如果你喜欢:
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>
<?import javafx.scene.text.*?>
<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml">
<children>
<Button layoutX="104.0" layoutY="81.0" mnemonicParsing="false" text="Love Potion">
<font>
<Font size="30.0" />
</font>
<graphic>
<ImageView fitHeight="150.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="http://icons.iconarchive.com/icons/mirella-gabriele/fantasy-mediaeval/128/Poison-red-icon.png" />
</image>
</ImageView>
</graphic>
</Button>
</children>
</AnchorPane>
为了获得上述SceneBuilder ,拖动ImageView
一个顶部Button
,它会自动设置为按钮的图形。 然后选择ImageView
并在SceneBuilder属性窗格输入图像的URL到的ImageView像场。
打开上述FXML在SceneBuilder看到下面的图片。
备用的CSS属性
替代CSS的-fx-background*
属性。
-
-fx-graphic
-
-fx-padding
-
-fx-content-display
-
-fx-graphic-text-gap
这些仅仅是不同的,不一定是更好地为你正在尝试做的。 这仅仅是一个喜好的东西来用哪个。 我找到这些设置更容易比使用-fx-background*
设置。 他们是更严格,但语法和选项更容易让我理解及其含义映射到的JavaDoc API的标记 。
的属性的详细描述是在CSS参考指南 。
下面是一个风格设置嵌入FXML图形为例,尽管它始终是最好的风格信息进行分离到一个单独的CSS样式表作为tarrsalah的样本。
<Button layoutX="138.0" layoutY="226.0" mnemonicParsing="false" style="-fx-graphic: url('http://icons.iconarchive.com/icons/mirella-gabriele/fantasy-mediaeval/128/Poison-red-icon.png')" text="Love Potion">
<font>
<Font size="20.0" />
</font>
</Button>
用于将图像添加到只使用Java代码按钮相关的解决方案
- JavaFX的-创建图像的自定义按钮
- 添加图片到一个按钮在特定位置的JavaFX
Answer 2:
FXML是只用于设计布局,为造型可以使用CSS并从引用它FXML
文件:
<stylesheets>
<URL value="@main.css" />
</stylesheets>
将图像添加到一个fx:id="btn"
在您的按钮css
:
#btn {
-fx-background-image: url("Add.png");
-fx-background-size: 18 18;
-fx-background-repeat: no-repeat;
-fx-background-position:left;
}
这Github上库提供一个完整的运行例子:
Answer 3:
(参考文献#btn {在评论#3)一对夫妇的变化的我的CSS例如由:
-fx-background-size: 100% 100%;
-fx-background-color: transparent;
这样取出按钮轮廓,并只留下图像。 我能够到按钮选择的场景生成器调整就像一个ImageView的看到实时画面变化。 我添加了一个工具提示解释图像,因为没有文字,没有按钮轮廓。 我打算使用的技术在其他地方解释和点击时给予更多的视觉反馈,该图像是一个按钮改变图像。
另外请注意:我需要指定在“CSS ID”(场景生成器),而不是按钮ID“外汇:身份证”,让他们联系起来。
添加这些变化是什么解释上面让我实现我的目标:有一个按钮,看起来像只图像(例如方形按钮,圆形)。