JavaFX颜色选择器是一种用于在JavaFX应用程序中选择颜色的工具。它可以帮助开发人员快速地从一系列预定义的颜色中选择,也可以使用RGB和HSB滑块来创建自定义颜色。
JavaFX颜色选择器是一个可以在JavaFX应用程序中使用的GUI小部件,它允许开发人员快速地从一系列预定义的颜色中进行选择,或者使用RGB和HSB滑块来创建新的自定义颜色。
JavaFX ColorPicker小部件本质上是一个带有多个标签的对话框,其中包含了一些内置的标准颜色(如红、橙、黄、绿、兰、蓝、紫,以及各种浅/深版本)。此外,还有一个“Custom”标签,允许开发人员使用RGB或HSB滑块来创建新的特定颜色。
ColorPicker colorPicker = new ColorPicker(); colorPicker.setValue(Color.BLUE); // 设置当前选中的颜色 colorPicker.show(); // 显示对话框 Color selectedColor = colorPicker.getValue(); // 获得当前选中的颜色
此外,JavaFX ColorPicker还允许开发人员将当前所选颜色保存到文件中(例如XML文件或Properties文件,并将其恢复回原始位置(例如在应用重新启动时,或者在不同会话之间进行数据传递时。
在JavaFX中,我们可以对对象应用颜色(Paint)。
在JavaFX中,所有形状都可以填充简单的颜色和渐变颜色。
当指定颜色值时,我们可以使用默认的RGB颜色空间中的颜色。
要创建颜色,请使用Color.rgb()方法。此方法采用三个整数值,表示红色,绿色和蓝色组件。
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.text.Text; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("Drawing Text"); Group root = new Group(); Scene scene = new Scene(root, 300, 250, Color.WHITE); int x = 100; int y = 100; int red = 30; int green = 40; int blue = 50; Text text = new Text(x, y, "JavaFX 2.0"); text.setFill(Color.rgb(red, green, blue, .99)); text.setRotate(60); root.getChildren().add(text); primaryStage.setScene(scene); primaryStage.show(); } }
上面的代码生成以下结果。
以下代码根据颜色名称创建颜色。Color.DARKBLUE
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.Circle; import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("Title"); final Circle circ = new Circle(40, 40, 30); final Group root = new Group(circ); final Scene scene = new Scene(root, 800, 400, Color.BEIGE); final Text text1 = new Text(25, 25, ".cn"); text1.setFill(Color.DARKBLUE); text1.setFont(Font.font(java.awt.Font.SERIF, 25)); root.getChildren().add(text1); primaryStage.setScene(scene); primaryStage.show(); } }
上面的代码生成以下结果。
另一个重载方法需要三个整数值和第四个double类型值,即alpha通道。
第四个值设置颜色的不透明度。此值介于零(0)和一(1)之间。
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("Text Fonts"); Group root = new Group(); Scene scene = new Scene(root, 550, 250, new Color(0,0,1,1.0)); Text text = new Text(50, 100, "JavaFX 2.0 from Java2s.com"); Font sanSerif = Font.font("Dialog", 30); text.setFont(sanSerif); text.setFill(Color.RED); root.getChildren().add(text); primaryStage.setScene(scene); primaryStage.show(); } }
上面的代码生成以下结果。
我们还可以通过指定色调,饱和度和亮度(HSB)来创建颜色。要使用HSB创建颜色,请使用 Color.hsb()
方法。
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("Text Fonts"); Group root = new Group(); Scene scene = new Scene(root, 550, 250,Color.hsb(270,1.0,1.0,1.0)); Text text = new Text(50, 100, "JavaFX 2.0 from Java2s.com"); Font sanSerif = Font.font("Dialog", 30); text.setFont(sanSerif); text.setFill(Color.RED); root.getChildren().add(text); primaryStage.setScene(scene); primaryStage.show(); } }
上面的代码生成以下结果。
以下代码显示了如何从Web值创建颜色。
Color c = Color.web("#0000FF",1.0);// blue as a hex web value, explict alpha Color c = Color.web("#0000FF");// blue as a hex web value, implict alpha Color c = Color.web("0000FF",1.0);// blue as a hex web value, explict alpha Color c = Color.web("0000FF");// blue as a hex web value, implict alpha
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.layout.HBox; import javafx.scene.paint.Color; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) { Scene scene = new Scene(new Group()); stage.setTitle("Label Sample"); stage.setWidth(400); stage.setHeight(180); HBox hbox = new HBox(); Label label1 = new Label("Search"); label1.setTextFill(Color.web("#0076a3")); hbox.setSpacing(10); hbox.getChildren().add((label1)); ((Group) scene.getRoot()).getChildren().add(hbox); stage.setScene(scene); stage.show(); } }
要使用RGB十六进制值作为CSS指定颜色值,我们可以使用Color.web()方法。
上面的代码生成以下结果。
JavaFX教程 -JavaFX多边形折线多边形import javafx.application.Application;import javafx.scene.Group;import javafx.scene.Sc...
JavaFX教程 -JavaFX 单选按钮单选按钮通常组合在一起以允许用户进行单选,即用户只能在单选按钮列表中选择一个项目。例如,当选...
JavaFX教程 -JavaFX密码字段PasswordField用于密码输入。用户键入的字符通过显示回显字符串被隐藏。创建密码字段以下代码使用来...
Java日期时间 -Java偏移日期时间偏移时间OffsetTime表示具有相对于UTC的固定区偏移的时间。OffsetTime组合LocalTime和ZoneOffset...