举报投诉联系我们 手机版 热门标签 鳄鱼CMS
您的位置:鳄鱼CMS > javafx颜色选择器 JavaFX 颜色

javafx颜色选择器 JavaFX 颜色

2023-03-05 23:31 Java教程

javafx颜色选择器 JavaFX 颜色

javafx颜色选择器

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 颜色

JavaFX教程 - JavaFX颜色


在JavaFX中,我们可以对对象应用颜色(Paint)。

在JavaFX中,所有形状都可以填充简单的颜色和渐变颜色。

RGB颜色

当指定颜色值时,我们可以使用默认的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();
    }
}

上面的代码生成以下结果。

null

颜色名称

以下代码根据颜色名称创建颜色。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();
    }
}

上面的代码生成以下结果。

null

颜色alpha通道

另一个重载方法需要三个整数值和第四个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();
    }
}

上面的代码生成以下结果。

null

HSB颜色

我们还可以通过指定色调,饱和度和亮度(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();
    }
}

上面的代码生成以下结果。

null

Web颜色

以下代码显示了如何从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()方法。

上面的代码生成以下结果。

null
阅读全文
以上是鳄鱼CMS为你收集整理的javafx颜色选择器 JavaFX 颜色全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 鳄鱼CMS eyucms.com 版权所有 联系我们