Thursday, September 19, 2024 3:26:11 PM
> settings

Customize


Authenticate

> JavaFX_CirclesAndSliders.java
/*
    Bryan
    Display a circle and sliders to control the color and opacity of said circle. Updating automatically
*/


import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.geometry.Orientation;
import javafx.scene.Scene;
import javafx.scene.control.Slider;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class JavaFX_CirclesAndSliders extends Application
{
    @Override // Override the start method in the Application class
    public void start(Stage primaryStage)
    {
        // Create our circle
        Circle circle = new Circle(50);
        circle.setCenterX(100);
        circle.setCenterY(75);

        // Create the red slider, min 0, max 255, default 0
        Slider redSlider = new Slider(0,255,0);
        redSlider.setOrientation(Orientation.HORIZONTAL);
        redSlider.setShowTickLabels(true);
        redSlider.setShowTickMarks(true);
        redSlider.setValue(0);

        // Create the green slider, min 0, max 255, default 0
        Slider greenSlider = new Slider(0,255,0);
        greenSlider.setOrientation(Orientation.HORIZONTAL);
        greenSlider.setShowTickLabels(true);
        greenSlider.setShowTickMarks(true);
        greenSlider.setValue(0);

        // Create the blue slider, min 0, max 255, default 0
        Slider blueSlider = new Slider(0,255,0);
        blueSlider.setOrientation(Orientation.HORIZONTAL);
        blueSlider.setShowTickLabels(true);
        blueSlider.setShowTickMarks(true);
        blueSlider.setValue(0);

        // Create the opacity slider, min 0, max 1, default 1
        // This slider is also OP
        Slider opSlider = new Slider(0.0,1.0,1.0);
        opSlider.setOrientation(Orientation.HORIZONTAL);
        opSlider.setShowTickLabels(true);
        opSlider.setShowTickMarks(true);
        opSlider.setMajorTickUnit(0.25f);
        opSlider.setBlockIncrement(0.1f);

        // Create a circle in a pane
        Pane circlePane = new Pane();
        circlePane.getChildren().add(circle);

        // Create our pane for our sliders, with labels
        GridPane sliderPane = new GridPane();
        sliderPane.add(new Text("Red"), 0, 0);
        sliderPane.add(redSlider, 1, 0);
        sliderPane.add(new Text("Green"), 0, 1);
        sliderPane.add(greenSlider, 1, 1);
        sliderPane.add(new Text("Blue"), 0, 2);
        sliderPane.add(blueSlider, 1, 2);
        sliderPane.add(new Text("Opacity"), 0, 3);
        sliderPane.add(opSlider, 1, 3);

        // Create a border pane to hold text and scroll bars
        BorderPane pane = new BorderPane();
        pane.setCenter(circlePane);
        pane.setBottom(sliderPane);

        // Add listeners for all of our sliders to adjust the color/opacity every time
        redSlider.valueProperty().addListener(list ->
            circle.setFill(Color.rgb((int)redSlider.getValue(),(int)greenSlider.getValue(),(int)blueSlider.getValue(),opSlider.getValue()))
        );

        greenSlider.valueProperty().addListener(list ->
            circle.setFill(Color.rgb((int)redSlider.getValue(),(int)greenSlider.getValue(),(int)blueSlider.getValue(),opSlider.getValue()))
        );

        blueSlider.valueProperty().addListener(list ->
            circle.setFill(Color.rgb((int)redSlider.getValue(),(int)greenSlider.getValue(),(int)blueSlider.getValue(),opSlider.getValue()))
        );

        opSlider.valueProperty().addListener(list ->
            circle.setFill(Color.rgb((int)redSlider.getValue(),(int)greenSlider.getValue(),(int)blueSlider.getValue(),opSlider.getValue()))
        );



        /*==================================================
                    DISPLAY THE STAGES
        ====================================================*/
        // Create our scene
        Scene scene = new Scene(pane, 300, 300);
        primaryStage.setTitle("Change the Color"); // Set the stage title
        primaryStage.setScene(scene); // Place the scene in the stage
        primaryStage.show(); // Display the stage
    }

    public static void main(String[] args)
    {
        launch(args);
    }
}
All opinions represented herein are my own
- © 2024 itsthedevman
- build 3c15a1b