Module  javafx.controls
软件包  javafx.scene.control

Class ColorPicker

  • All Implemented Interfaces:
    StyleableEventTargetSkinnable


    public class ColorPicker
    extends ComboBoxBase<Color>

    ColorPicker控件允许用户从标准的颜色调色板中选择一种颜色,只需点击一下简单的选择或定义自己的自定义颜色。

    value是当前选择的Color 初始颜色可以通过调用setColor或通过构造函数来设置。 如果没有指定,则使用默认的初始颜色。

    ColorPicker控件提供具有预定义颜色集的调色板。 如果用户不想从预定义的集合中选择,则可以通过与自定义颜色对话框交互来创建自定义颜色。 该对话框提供RGB,HSB和Web的交互模式,以创建新的颜色。 它还允许修改颜色的不透明度。

    一旦定义了一种新的颜色,用户可以选择是保存它还是使用它。 如果保存新颜色,则此颜色将显示在调色板上的自定义颜色区域中。 另外getCustomColors返回保存的自定义颜色列表。

    promptText不支持,因此是无操作的。 但未来可能会得到支持。

       final ColorPicker colorPicker = new ColorPicker(); colorPicker.setOnAction(new EventHandler() { public void handle(Event t) { Color c = colorPicker.getValue(); System.out.println("New Color's RGB = "+c.getRed()+" "+c.getGreen()+" "+c.getBlue()); } });  

    ColorPicker控件的外观可以通过三种方式进行设计:简单的按钮模式,MenuButton模式或SplitMenuButton模式。 默认为MenuButton模式。 对于像外观的按钮,使用的样式类是STYLE_CLASS_BUTTON ,对于SplitMenuButton的外观和行为,使用的样式类是STYLE_CLASS_SPLIT_BUTTON

       colorPicker.getStyleClass().add("button");  
    要么
       colorPicker.getStyleClass().add("split-button");  
    从以下版本开始:
    JavaFX 2.2
    • 字段详细信息

      • STYLE_CLASS_BUTTON

        public static final String STYLE_CLASS_BUTTON
        指定一个Button的样式类就像ColorPicker控件的外观。
        另请参见:
        Constant Field Values
      • STYLE_CLASS_SPLIT_BUTTON

        public static final String STYLE_CLASS_SPLIT_BUTTON
        指定SplitMenuButton的样式类,如ColorPicker控件的外观。
        另请参见:
        Constant Field Values
    • 构造方法详细信息

      • ColorPicker

        public ColorPicker​()
        创建默认的ColorPicker实例,将所选颜色设置为白色。
      • ColorPicker

        public ColorPicker​(Color color)
        创建一个ColorPicker实例,并将所选颜色设置为给定的颜色。
        参数
        color - 要设置为ColorPicker当前选定的颜色。
    • 方法详细信息

      • getCustomColors

        public final ObservableList<Color> getCustomColors​()
        获取用户添加到调色板的自定义颜色列表。
        结果
        自定义颜色列表
      • createDefaultSkin

        protected Skin<?> createDefaultSkin​()
        为此控件创建一个新的默认皮肤实例。 如果没有通过CSS -fx-skin提供皮肤或者在具有setSkin(...)的子类中显式设置,则调用此控件创建皮肤。
        重写:
        createDefaultSkinControl
        结果
        此控件的默认皮肤的新实例。 如果为null,则控件将没有皮肤,除非由css提供。