我有一个带有透明背景框架的图像,我希望将其作为TextArea的背景。 使用Google,我发现了两种实现方法:
1)通过放置
"-fx-background-image: url(...);"
进入
TextArea.setStyle();
2)仅使用
使背景透明"-fxbackground-color: transparent;"
将图像作为另一个对象,将两个对象粘贴到同一位置,然后在图像后的文本区域中添加文本区域。
但是没有任何效果。我还发现了使用CSS的一些方法,但是在我当前的项目中,我没有这个方法,如果可能的话,我想避免。
最主要的情况是我不能使背景透明,它仍然是白色。有人可以给我建议,我在做什么错以及工作代码示例吗?
背景框架不是方形的,所以我真的需要透明的背景。
答案 0 :(得分:0)
但是没有任何效果。我还发现了使用CSS的一些方法,但是在我目前的项目中,我还没有这种方法,如果可能的话,我想避免。
您已经在使用CSS。除非您要使用自己TextArea
皮肤的实现,否则这里无法避免使用CSS。
您需要使用CSS样式表,使内容区域的背景和ScrollPane
的视口透明:
@Override
public void start(Stage primaryStage) {
TextArea textArea = new TextArea();
textArea.getStyleClass().add("framed");
Scene scene = new Scene(new StackPane(textArea));
scene.getStylesheets().add("style.css");
primaryStage.setScene(scene);
primaryStage.show();
}
.framed.text-area {
/* set size to picture size */
-fx-pref-height: 958;
-fx-pref-width: 958;
-fx-min-height: 958;
-fx-min-width: 958;
-fx-max-height: 958;
-fx-max-width: 958;
/* necessary padding to not cover the speech bubble with text */
-fx-padding: 95 135 329 90;
/* some image of a speech bubble from the web */
-fx-background-image: url(http://res.freestockphotos.biz/pictures/15/15674-illustration-of-a-cartoon-speech-bubble-pv.png);
}
.framed.text-area .scroll-pane .viewport,
.framed.text-area .content {
-fx-background-color: null;
}