当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaFX 类 ColorPicker用法及代码示例


ColorPicker是JavaFX的一部分。 ColorPicker允许用户从给定的一组颜色中选择一种颜色,或制作自己的自定义颜色。可以使用setValue()函数设置初始颜色,也可以在构造函数中定义初始颜色,然后使用getValue()函数找到用户选择的颜色。
当用户从颜色选择器中选择一种颜色时,将生成一个动作事件。可以使用事件处理程序来处理此事件。

ColorPicker的外观可以通过三种方式控制:

  • 简单的按钮模式
  • 菜单按钮模式
  • 拆分菜单按钮模式

该类的构造函数是:


  1. ColorPicker():创建默认的ColorPicker实例,并将选定的颜色设置为白色。
  2. ColorPicker(Color c):创建一个ColorPicker实例并将所选颜色设置为给定颜色。

常用方法

方法 说明
getCustomColors() 获取用户添加到调色板中的自定义颜色的列表。
setValue(Color c) 将颜色选择器的颜色设置为颜色c
getValue() 返回一个颜色对象,该对象定义用户选择的颜色

下面的程序将说明颜色选择器的用法:

  1. 程序创建一个颜色选择器并将其添加到舞台:该程序创建一个由名称cp表示的ColorPicker。颜色选择器将在场景内创建,而场景又将托管在舞台(顶级JavaFX容器)内。函数setTitle()用于为舞台提供标题,然后创建tile-pane,在其上调用addChildren()方法将颜色选择器附加到场景内部,并在代码中指定(200,200)指定的分辨率。最后,调用show()方法以显示最终结果。
    // Java Program to create a color picker and add it to the stage 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.*; 
    import javafx.scene.layout.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.collections.*; 
    import javafx.stage.Stage; 
    import javafx.scene.text.Text.*; 
    import javafx.scene.paint.*; 
    import javafx.scene.text.*; 
    public class colorpicker extends Application { 
        // labels 
        Label l; 
      
        // launch the application 
        public void start(Stage s) 
        { 
            // set title for the stage 
            s.setTitle("creating color picker"); 
      
            // create a tile pane 
            TilePane r = new TilePane(); 
      
            // create a label 
            l = new Label("This is a color picker example "); 
      
            // create a color picker 
            ColorPicker cp = new ColorPicker(Color.BLUE); 
      
            // add label 
            r.getChildren().add(l); 
            r.getChildren().add(cp); 
      
            // create a scene 
            Scene sc = new Scene(r, 200, 200); 
      
            // set the scene 
            s.setScene(sc); 
      
            s.show(); 
        } 
      
        public static void main(String args[]) 
        { 
            // launch the application 
            launch(args); 
        } 
    }

    输出:

  2. 程序创建三种不同外观的颜色选择器:该程序创建一个以名称cp,cp1,cp2表示的ColorPicker。 cp将具有菜单按钮的外观,cp1将具有按钮的外观,而cp2将具有split按钮的外观。拾色器将在场景内创建,而场景又将托管在舞台(顶级JavaFX容器)内。函数setTitle()用于为舞台提供标题。然后创建一个tile-pane,在其上调用addChildren()方法以将颜色选择器附加到场景内,并在代码中指定(200,200)。最后,调用show()方法以显示最终结果。
    // Java Program to create color picker of three different appearance 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.*; 
    import javafx.scene.layout.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.collections.*; 
    import javafx.stage.Stage; 
    import javafx.scene.text.Text.*; 
    import javafx.scene.paint.*; 
    import javafx.scene.text.*; 
    public class colorpicker_1 extends Application { 
        // labels 
        Label l; 
      
        // launch the application 
        public void start(Stage s) 
        { 
            // set title for the stage 
            s.setTitle("creating color picker"); 
      
            // create a tile pane 
            TilePane r = new TilePane(); 
      
            // create a label 
            l = new Label("This is a color picker example "); 
      
            // create a color picker 
            ColorPicker cp = new ColorPicker(Color.BLUE); 
      
            // create a color picker 
            ColorPicker cp1 = new ColorPicker(Color.BLUE); 
      
            // set the appearance of color picker to  button 
            cp1.getStyleClass().add("button"); 
      
            // create a color picker 
            ColorPicker cp2 = new ColorPicker(Color.BLUE); 
      
            // set the appearance of color picker to split button 
            cp2.getStyleClass().add("split-button"); 
      
            // add label 
            r.getChildren().add(l); 
            r.getChildren().add(cp); 
            r.getChildren().add(cp1); 
            r.getChildren().add(cp2); 
      
            // create a scene 
            Scene sc = new Scene(r, 200, 200); 
      
            // set the scene 
            s.setScene(sc); 
      
            s.show(); 
        } 
      
        public static void main(String args[]) 
        { 
            // launch the application 
            launch(args); 
        } 
    }

    输出

  3. 创建颜色选择器并向其添加侦听器的程序:该程序将创建一个由名称cp表示的ColorPicker。我们将创建一个事件hab = ndler和一个标签l2,以显示用户选择的颜色。事件处理程序将处理颜色选择器的事件,并将标签l2的文本设置为所选颜色的RGB值。该事件将使用setOnAction()方法与颜色选择器关联。拾色器将在场景内创建,而场景又将托管在舞台(顶级JavaFX容器)内。函数setTitle()用于为舞台提供标题。然后创建一个tile-pane,在其上调用addChildren()方法以将颜色选择器附加到场景内,并在代码中指定(200,200)。最后,调用show()方法以显示最终结果。
    // Java Program to create  color picker and add listener to it 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.*; 
    import javafx.scene.layout.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.collections.*; 
    import javafx.stage.Stage; 
    import javafx.scene.text.Text.*; 
    import javafx.scene.paint.*; 
    import javafx.scene.text.*; 
    public class colorpicker_2 extends Application { 
        // labels 
        Label l; 
      
        // launch the application 
        public void start(Stage s) 
        { 
            // set title for the stage 
            s.setTitle("creating color picker"); 
      
            // create a tile pane 
            TilePane r = new TilePane(); 
      
            // create a label 
            l = new Label("This is a color picker example "); 
            Label l1 = new Label("no selected color "); 
      
            // create a color picker 
            ColorPicker cp = new ColorPicker(); 
      
            // create a event handler 
            EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() { 
                public void handle(ActionEvent e) 
                { 
                    // color 
                    Color c = cp.getValue(); 
      
                    // set text of the label to RGB value of color 
                    l1.setText("Red = " + c.getRed() + ", Green = " + c.getGreen()  
                                                     + ", Blue = " + c.getBlue()); 
                } 
            }; 
      
            // set listener 
            cp.setOnAction(event); 
      
            // add label 
            r.getChildren().add(l); 
            r.getChildren().add(cp); 
            r.getChildren().add(l1); 
      
            // create a scene 
            Scene sc = new Scene(r, 500, 200); 
      
            // set the scene 
            s.setScene(sc); 
      
            s.show(); 
        } 
      
        public static void main(String args[]) 
        { 
            // launch the application 
            launch(args); 
        } 
    }

    输出

    注意:以上程序可能无法在在线IDE中运行,请使用离线编译器。
    参考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/ColorPicker.html



相关用法


注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFx | ColorPicker with examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。