答案 0 :(得分:3)
设置CSS属性-fx-color-rect-width
和-fx-color-rect-width
将更改显示的矩形的大小。设置fx-font-size
将更改箭头的大小。
请注意,official JavaFX CSS reference中未记录其中某些属性,因此我猜未来的JavaFX迭代可能会在不事先通知的情况下更改它们。尽管如此,在这个阶段,我认为这可能不太可能,并且这些属性使用起来非常安全。为了确定未记录的CSS属性,我查看了ColorPickerSkin的源代码。
pickme.css
.large-rect-picker {
-fx-color-rect-width: 60px;
-fx-color-rect-height: 60px;
-fx-color-label-visible: false;
-fx-min-width: 150px;
-fx-min-height: 100px;
-fx-pref-width: 150px;
-fx-pref-height: 100px;
}
.large-rect-picker > .arrow-button {
-fx-font-size: 30px;
}
PickMe.java
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ColorPicker;
import javafx.stage.Stage;
public class PickMe extends Application {
@Override
public void start(Stage stage) {
ColorPicker colorPicker = new ColorPicker();
colorPicker.getStyleClass().add("large-rect-picker");
stage.setScene(new Scene(new Group(colorPicker)));
stage.getScene().getStylesheets().add(
PickMe.class.getResource(
"pickme.css"
).toExternalForm()
);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
提问的信息
很难确切地知道你想要什么,因为你在这个问题中并没有真正明确。例如,你的图标是什么意思?矩形或向下箭头或两者兼而有之?当您单击该箭头时弹出的显示应该如何改变或保持不变?对于将来的问题,我建议您更具体地说明您要实现的目标以及它与您的目标有何不同。显示生成您所拥有的代码也可以帮助其他人解决您的问题。希望上面的信息足以让你修改它以达到你想要的效果。
答案 1 :(得分:0)
您可以使用css:
访问和自定义颜色选择器<强>的ColorPicker 强>
样式类:颜色选择器
<强>子结构强>
彩色显示节点 - 标签
arrow-button - StackPane
arrow - StackPane
ColorPicker控件具有ComboBase
的所有属性和伪类示例强>
.color-picker .label {
-fx-background-color: red;
-fx-text-fill: null;
-fx-graphic: url("1487868456_Other_Antivirus_Software.png");//This is icon of Color picker label
}
据我所知,你根本不能使用-fx-width / -fx-height而你不能使用百分比值。元素的宽度和高度是只读的。你可以设置-fx-pref-width,-fx-pref-height,-fx-max-width,-fx-min-width,-fx-max-height,-fx-min-height,-fx-border- width和-fx-border-height调整Java FX元素的大小。
.picker-color {
-fx-border-color:white ;
-fx-border-width:40;
}