📜  JavaFX |线性渐变类

📅  最后修改于: 2022-05-13 01:54:54.120000             🧑  作者: Mango

JavaFX |线性渐变类

LinearGradient 类是 JavaFX 的一部分。 LinearGradient 类使用线性颜色渐变图案填充形状。用户可以指定多个 LinearGradient 图案,系统将提供颜色之间的插值。

类的构造函数:

  1. LinearGradient(double sX, double sY, double eX, double eY, boolean prop, CycleMethod c, List s) :创建一个新的 Lineargradient 对象。
  2. LinearGradient(double sX, double sY, double eX, double eY, boolean prop, CycleMethod c, Stop... s) :创建一个新的 LinearGradient 对象。

常用方法:

MethodExplanation
equals(Object o)Returns whether the LinearGradient objects are equal or not.
getCycleMethod()Returns the cycle method of the linear gradient object.
getEndX()Returns the x coordinate of end point of the linear gradient.
getEndY()Returns the y coordinate of end point of the linear gradient.
getStartX()Returns the x coordinate of start point of the linear gradient.
getStartY()Returns the y coordinate of start point of the linear gradient.
getStops()Returns the stops of linear gradient.
isOpaque()Returns whether the linear Gradient is opaque or not.
isProportional()Returns whether the linear Gradient is proportional or not.
valueOf(String v)Creates a linear gradient value from a string representation.

下面的程序说明了 LinearGradient 类的使用:

  1. Java程序创建一个 LinearGradient 对象并为其添加停靠点并将其应用于圆:在此程序中,我们将创建一个 Stop 对象数组,其偏移值范围为 0 到 1。创建一个具有指定停靠点的 LinearGradient 对象。现在创建一个具有指定 x、y 位置和半径的圆,并向其添加线性渐变。然后创建一个 VBox 并设置它的对齐方式。将圆圈添加到vbox并将vbox添加到场景中并将场景添加到舞台并调用show()函数以显示结果。
    // Java program to create a LinearGradient 
    // object and add stops to it and apply it
    // to the circle
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.scene.layout.*;
    import javafx.scene.paint.*;
    import javafx.scene.text.*;
    import javafx.geometry.*;
    import javafx.scene.layout.*;
    import javafx.scene.shape.*;
    import javafx.scene.paint.*;
       
    public class Linear_Gradient_1 extends Application {
       
    // launch the application
    public void start(Stage stage)
    {
      
        try {
      
            // set title for the stage
            stage.setTitle("Linear Gradient");
      
            // create stops
            Stop[] stop = {new Stop(0, Color.RED), 
                           new Stop(0.5, Color.GREEN), 
                           new Stop(1, Color.BLUE)};
      
            // create a Linear gradient object
            LinearGradient linear_gradient = new LinearGradient(0, 0,
                              1, 0, true, CycleMethod.NO_CYCLE, stop);
      
            // create a circle
            Circle circle = new Circle(100, 100, 70);
      
            // set fill
            circle.setFill(linear_gradient);
      
            // create VBox
            VBox vbox = new VBox(circle);
      
            // ste Alignment
            vbox.setAlignment(Pos.CENTER);
      
            // create a scene
            Scene scene = new Scene(vbox, 400, 300);
      
            // set the scene
            stage.setScene(scene);
      
            stage.show();
        }
      
        catch (Exception e) {
      
            System.out.println(e.getMessage());
        }
    }
      
    // Main Method
    public static void main(String args[])
    {
      
        // launch the application
        launch(args);
    }
    }
    

    输出:

  2. Java程序创建一个 LinearGradient 对象并为其添加停靠点,并将 CycleMethod 设置为反射并设置为 false 并将其应用于圆:在此程序中,我们将创建一个 Stop 对象数组,其偏移值范围为 0 到 1 . 然后创建一个带有指定停靠点的 LinearGradient 对象。将CycleMethod 设置为反射并设置为 false。创建一个具有指定 x、y 位置和半径的圆,并向其添加线性渐变。然后创建一个 VBox 并设置它的对齐方式。将圆圈添加到vbox并将vbox添加到场景中并将场景添加到舞台并调用show()函数以显示结果。
    // Java program to create a LinearGradient object 
    // and add stops to it and set the CycleMethod to
    // reflect and set proportional to false and 
    // apply it to the circle
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.scene.layout.*;
    import javafx.scene.paint.*;
    import javafx.scene.text.*;
    import javafx.geometry.*;
    import javafx.scene.layout.*;
    import javafx.scene.shape.*;
    import javafx.scene.paint.*;
      
    public class Linear_Gradient_2 extends Application {
      
        // launch the application
        public void start(Stage stage)
        {
      
            try {
      
                // set title for the stage
                stage.setTitle("Linear Gradient");
      
                // create stops
                Stop[] stop = {new Stop(0, Color.RED), new Stop(0.5, 
                             Color.GREEN), new Stop(1, Color.BLUE)};
      
                // create a Linear gradient object
                LinearGradient linear_gradient = new LinearGradient(0, 0, 
                                35, 0, false, CycleMethod.REFLECT, stop);
      
                // create a circle
                Circle circle = new Circle(100, 100, 70);
      
                // set fill
                circle.setFill(linear_gradient);
      
                // create VBox
                VBox vbox = new VBox(circle);
      
                // ste Alignment
                vbox.setAlignment(Pos.CENTER);
      
                // create a scene
                Scene scene = new Scene(vbox, 400, 300);
      
                // set the scene
                stage.setScene(scene);
      
                stage.show();
            }
      
            catch (Exception e) {
      
                System.out.println(e.getMessage());
            }
        }
      
        // Main Method
        public static void main(String args[])
        {
      
            // launch the application
            launch(args);
        }
    }
    

    输出:

注意:以上程序可能无法在在线 IDE 中运行,请使用离线编译器。

参考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/paint/LinearGradient.html