當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。