ColorPicker是JavaFX的一部分。 ColorPicker允許用戶從給定的一組顏色中選擇一種顏色,或製作自己的自定義顏色。可以使用setValue()函數設置初始顏色,也可以在構造函數中定義初始顏色,然後使用getValue()函數找到用戶選擇的顏色。
當用戶從顏色選擇器中選擇一種顏色時,將生成一個動作事件。可以使用事件處理程序來處理此事件。
ColorPicker的外觀可以通過三種方式控製:
- 簡單的按鈕模式
- 菜單按鈕模式
- 拆分菜單按鈕模式
該類的構造函數是:
- ColorPicker():創建默認的ColorPicker實例,並將選定的顏色設置為白色。
- ColorPicker(Color c):創建一個ColorPicker實例並將所選顏色設置為給定顏色。
常用方法:
方法 | 說明 |
---|---|
getCustomColors() | 獲取用戶添加到調色板中的自定義顏色的列表。 |
setValue(Color c) | 將顏色選擇器的顏色設置為顏色c |
getValue() | 返回一個顏色對象,該對象定義用戶選擇的顏色 |
下麵的程序將說明顏色選擇器的用法:
- 程序創建一個顏色選擇器並將其添加到舞台:該程序創建一個由名稱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); } }
輸出:
- 程序創建三種不同外觀的顏色選擇器:該程序創建一個以名稱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); } }
輸出:
- 創建顏色選擇器並向其添加偵聽器的程序:該程序將創建一個由名稱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
相關用法
- JavaFX 類 Arc用法及代碼示例
- JavaFX 類 Box用法及代碼示例
- JavaFX 類 Polygon用法及代碼示例
- JavaFX 類 Line用法及代碼示例
- JavaFX 類 PointLight用法及代碼示例
- JavaFX 類 CheckMenuItem用法及代碼示例
- JavaFX 類 Circle用法及代碼示例
- JavaFX 類 Polyline用法及代碼示例
- JavaFX 類 Ellipse用法及代碼示例
- JavaFX 類 Sphere用法及代碼示例
- JavaFX 類 ContextMenu用法及代碼示例
- JavaFX 類 QuadCurve用法及代碼示例
- JavaFX 類 CubicCurve用法及代碼示例
- JavaFX 類 Cylinder用法及代碼示例
- JavaFX 類 RadioButton用法及代碼示例
注:本文由純淨天空篩選整理自andrew1234大神的英文原創作品 JavaFx | ColorPicker with examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。