Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css Javafx中没有颜色方块的颜色选择器?_Css_Javafx_Fxml - Fatal编程技术网

Css Javafx中没有颜色方块的颜色选择器?

Css Javafx中没有颜色方块的颜色选择器?,css,javafx,fxml,Css,Javafx,Fxml,我想实现我自己的SplitMenu颜色选择器,它的功能实际上类似于SplitMenuButton。要做到这一点,我有一个按钮,当单击时,它会将选定文本的颜色更改为当前颜色,还有一个颜色选择器,它会执行相同的操作,但也会更改当前颜色。因此,我的FXML如下所示: <HBox> <Button text="Aa" fx:id="colorTextButton" styleClass="leftButton" onAction="#colorText"/> &l

我想实现我自己的SplitMenu颜色选择器,它的功能实际上类似于SplitMenuButton。要做到这一点,我有一个按钮,当单击时,它会将选定文本的颜色更改为当前颜色,还有一个颜色选择器,它会执行相同的操作,但也会更改当前颜色。因此,我的FXML如下所示:

<HBox>
    <Button text="Aa" fx:id="colorTextButton" styleClass="leftButton" onAction="#colorText"/>
    <ColorPicker fx:id="colorPicker" styleClass="rightButton colorPicker" onAction="#setColor">
</HBox>
.leftButton {
    -fx-background-insets: 0;
    -fx-background-radius: 0.25em 0 0 0.25em;
    -fx-border-style: solid;
    -fx-border-color: #bcbcbc;
    -fx-border-width: 0.08em 0.00em 0.08em 0.08em;
    -fx-border-radius: 0.25em 0 0 0.25em;
}

.rightButton {
    -fx-background-insets: 0;
    -fx-background-radius: 0 0.25em 0.25em 0;
    -fx-border-style: solid;
    -fx-border-color: #bcbcbc;
    -fx-border-width: 0.08em 0.08em 0.08em 0.04em;
    -fx-border-radius: 0 0.25em 0.25em 0;
}

.colorPicker {
    -fx-color-label-visible: false;
}

有没有任何方法,通过java编程,或者CSS或FXML来消除颜色选择器中的颜色方块?在我的另一个按钮上重新创建一个类似于图形的正方形是相当容易的,但是如何去掉颜色选择器上的那个呢

您可以使用下面的CSS从ColorPicker中删除预览颜色框:

.color-picker > .color-picker-label > .picker-color > .picker-color-rect {
    -fx-stroke: null;
    -fx-fill : null;   
}
这将导致长方体完全消失

编辑:但正如我所看到的,如果你打开调色板,按住鼠标(左/右)在颜色之间不断切换,框会再次出现,当鼠标松开时,框会再次消失。我会晚些时候或明天看一看

编辑2:另一个比上面更好的方法是使用下面的代码以编程方式隐藏矩形:

Rectangle rec = (Rectangle) colorPicker.lookup("Rectangle");
rec.setVisible(false);

谢谢你,我要试试这个!我可能要等到明天或周一才能接受这个答案,所以这个问题会被看到,希望你能得到一些支持。@MMAdams我建议按照编辑2进行操作,如果你没有检查编辑,这是更好的解决方案。我尝试了编辑2,但是
colorPicker.lookup(“矩形”)
对我来说总是返回空值,在任何情况下,我有一个css文件,我已经用它来设计一些按钮和东西的样式,所以css答案很容易实现。这已经很晚了,但是对于任何需要使用edit 2的人来说,你必须在primaryStage.show()之后使用它;。