Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javafx.application.Application;
- import javafx.geometry.Pos;
- import javafx.scene.Scene;
- import javafx.scene.control.Button;
- import javafx.scene.control.RadioButton;
- import javafx.scene.control.ToggleGroup;
- import javafx.stage.Stage;
- import javafx.scene.layout.*;
- import javafx.scene.paint.Color;
- import javafx.scene.shape.*;
- public class Traffic extends Application {
- BorderPane bPane = new BorderPane();
- public static void main(String[] args) {
- ;
- launch(args);
- }
- @Override
- public void start(Stage primaryStage) {
- bPane.setBottom(bottom());
- bPane.setCenter(Light.createLight());
- Scene sce = new Scene(bPane, 250, 300);
- primaryStage.setTitle("Traffic");
- primaryStage.setScene(sce);
- primaryStage.show();
- primaryStage.setResizable(false);
- }
- public HBox bottom() {
- HBox selection = new HBox(15);
- RadioButton Red = new RadioButton("Red");
- RadioButton Yellow = new RadioButton("Yellow");
- RadioButton Green = new RadioButton("Green");
- ToggleGroup group = new ToggleGroup();
- Red.setToggleGroup(group);
- Yellow.setToggleGroup(group);
- Green.setToggleGroup(group);
- selection.getChildren().addAll(Red, Yellow, Green);
- selection.setAlignment(Pos.CENTER);
- Red.setOnAction(e -> {
- if (Red.isSelected())
- bPane.getChildren().add(Light.setRed());
- });
- Yellow.setOnAction(e -> {
- if (Yellow.isSelected())
- bPane.getChildren().add(Light.setYellow());
- });
- Green.setOnAction(e -> {
- if (Green.isSelected())
- bPane.getChildren().add(Light.setGreen());
- });
- Red.fire();
- return selection;
- }
- static class Light extends StackPane {
- public static int sel;
- public static Pane createLight() {
- Pane pane = new Pane();
- Rectangle out = new Rectangle();
- out.setHeight(200);
- out.setWidth(75);
- out.setFill(Color.TRANSPARENT);
- out.setStroke(Color.BLACK);
- out.setStrokeWidth(2);
- out.setX(87.5);
- out.setY(50);
- Circle outC1 = new Circle();
- outC1.setCenterX(125);
- outC1.setCenterY(90);
- outC1.setRadius(20);
- outC1.setFill(Color.TRANSPARENT);
- outC1.setStroke(Color.BLACK);
- Circle outC2 = new Circle();
- outC2.setCenterX(125);
- outC2.setCenterY(150);
- outC2.setRadius(20);
- outC2.setFill(Color.TRANSPARENT);
- outC2.setStroke(Color.BLACK);
- Circle outC3 = new Circle();
- outC3.setCenterX(125);
- outC3.setCenterY(210);
- outC3.setRadius(20);
- outC3.setFill(Color.TRANSPARENT);
- outC3.setStroke(Color.BLACK);
- Circle red = new Circle();
- red.setCenterX(125);
- red.setCenterY(90);
- red.setRadius(20);
- Circle yellow = new Circle();
- yellow.setCenterX(125);
- yellow.setCenterY(150);
- yellow.setRadius(20);
- Circle green = new Circle();
- green.setCenterX(125);
- green.setCenterY(210);
- green.setRadius(20);
- if (sel == 0) {
- red.setFill(Color.RED);
- yellow.setFill(Color.WHITE);
- green.setFill(Color.WHITE);
- } else if (sel == 1) {
- yellow.setFill(Color.YELLOW);
- red.setFill(Color.WHITE);
- green.setFill(Color.WHITE);
- } else if (sel == 2) {
- green.setFill(Color.GREEN);
- red.setFill(Color.WHITE);
- yellow.setFill(Color.WHITE);
- }
- pane.getChildren().addAll(red,green,yellow);
- pane.getChildren().add(out);
- pane.getChildren().addAll(outC1, outC2, outC3);
- return pane;
- }
- public static Pane setRed() {
- sel = 0;
- return createLight();
- }
- public static Pane setYellow() {
- sel = 1;
- return createLight();
- }
- public static Pane setGreen() {
- sel = 2;
- return createLight();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement