如何在JavaFX中更改面板的颜色?

17

我希望能够改变用户输入的Pane的颜色,该颜色以String的形式传递给我。

如何将这个String设置为我的面板的背景颜色?

代码:

colorField.setOnKeyTyped(new EventHandler<KeyEvent>() {
    @Override
    public void handle(KeyEvent t) {
        color = colorField.getText();
    }
});

1
我知道你是初学者,但你应该向我们展示你的努力。到目前为止,代码看起来怎么样?你已经成功将面板的颜色更改为固定值了吗?你能够获取用户输入的文本框中的值吗? - Uluk Biy
是的,没错,我是个初学者。我想要构建一个像这样的组件:(http://www.uifaces.com),并且我试图自己解决我的问题,但是我遇到了很多问题:(。我不知道如何将字符串颜色设置为窗格!!!以下是我目前的代码部分: colorField.setOnKeyTyped(new EventHandler() { @Override public void handle(KeyEvent t) { color = colorField.getText(); } }); - maryam
如果你不知道从哪里开始,可以尝试这里; 而关于这个特定问题,可以参考这里这里是JavaFX CSS的参考页面,而PaneRegion的Javadocs也会有所帮助。 - James_D
1个回答

28
如果您只是想知道如何完成那个特定的事情,我建议按照以下步骤操作:
NodesCSS设置为以下内容,使用用户输入的hexacolor
String enteredByUser = "abcdef";
yournode.setStyle("-fx-background-color: #" + enteredByUser);

If you want to know more, please specify your questions and provide some code samples. Since you tagged this question with 'javafx-8', I will also provide a code example for it (which only works in javafx 8).
yournode.setBackground(new Background(new BackgroundFill(Color.web("#" + enteredByUser), CornerRadii.EMPTY, Insets.EMPTY)));

希望有所帮助,Laurenz

非常感谢您的回答,我尝试了您提供的第一个答案,但它没有起作用,并引发了警告:(WARNING: com.sun.javafx.css.parser.CSSParser term CSS Error parsing in-line style '-fx-background-color:#' from javafx.scene.Node$22@1564f4: Unexpected token '#' at [1,21]),是否还有其他方法可以解决呢? - maryam
1
@maryam,这是因为在设置样式时,“enteredByUser”字符串为空。 - Uluk Biy
正确的字符串表示用户输入的值。 - int lawl is over 9000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接