• 用JavaFX模拟一个交通信号灯


       ( 交通信号灯)编写一个程序来模拟交通信号灯。 程序可以让用户从红、 黄 、 绿三种顔色灯中选择一种。当选择一个单选按钮后, 相应的灯被打开,并且一次只能亮一种灯。程序开始时所有的灯都是不亮的。

    代码如下:

    package javaseniorprograme;
    
    import javafx.application.Application;
    import javafx.geometry.Insets;
    import javafx.geometry.Pos;
    import javafx.scene.Scene;
    import javafx.scene.control.RadioButton;
    import javafx.scene.control.ToggleGroup;
    import javafx.scene.layout.BorderPane;
    import javafx.scene.layout.HBox;
    import javafx.scene.layout.Pane;
    import javafx.scene.paint.Color;
    import javafx.scene.shape.Circle;
    import javafx.scene.shape.Rectangle;
    import javafx.scene.text.Text;
    import javafx.stage.Stage;
    
    /**
     * 交通信号灯
     * @author 李安国
     */
    public class Exercise16_03 extends Application{
        @Override
        public void start(Stage stage){
            // 创建一个矩形,初始化位置
            Rectangle rec = new Rectangle(215,10,70,200);
            rec.setStroke(Color.BLACK);
            rec.setFill(Color.WHITE); 
            // 创建三个圆形,初始化位置
            Circle c1 = new Circle(250,45,30,Color.WHITE);
            Circle c2 = new Circle(250,110,30,Color.WHITE);
            Circle c3 = new Circle(250,175,30,Color.WHITE);
            c1.setStroke(Color.BLACK);
            c2.setStroke(Color.BLACK);
            c3.setStroke(Color.BLACK);
            // 创建三个单选按钮
            RadioButton rb1 = new RadioButton();
            RadioButton rb2 = new RadioButton();
            RadioButton rb3 = new RadioButton();
            
            ToggleGroup tg = new ToggleGroup();
            rb1.setToggleGroup(tg);
            rb2.setToggleGroup(tg);
            rb3.setToggleGroup(tg);
            rb1.setSelected(true);
            
            rb1.setOnMouseClicked(e->{
                c1.setFill(Color.RED); 
                c1.setStroke(Color.WHITE); 
                c2.setFill(Color.WHITE);
                c3.setFill(Color.WHITE);
                c2.setStroke(Color.BLACK);
                c3.setStroke(Color.BLACK);
            });
            rb2.setOnMouseClicked(e->{
                c2.setFill(Color.YELLOW); 
                c2.setStroke(Color.WHITE); 
                c1.setFill(Color.WHITE);
                c3.setFill(Color.WHITE);
                c1.setStroke(Color.BLACK);
                c3.setStroke(Color.BLACK);
            });
            rb3.setOnMouseClicked(e->{
                c3.setFill(Color.GREEN); 
                c3.setStroke(Color.WHITE); 
                c2.setFill(Color.WHITE);
                c1.setFill(Color.WHITE);
                c2.setStroke(Color.BLACK);
                c1.setStroke(Color.BLACK); 
            });
            // 创建三个文本
            Text t1 = new Text("Red");
            Text t2 = new Text("Yellow");
            Text t3 = new Text("Green");
           // 创建一个HBox 
            HBox hbox = new HBox();
            hbox.setSpacing(10); 
            hbox.setAlignment(Pos.CENTER); 
            hbox.getChildren().addAll(rb1,t1,rb2,t2,rb3,t3);
            // 创建一个Pane
            Pane pa = new Pane();
            pa.getChildren().addAll(rec,c1,c2,c3);
            // 创建一个BorderPane
            BorderPane pane = new BorderPane();
            pane.setCenter(pa); 
            pane.setBottom(hbox); 
            Scene scene = new Scene(pane,500,300);
            stage.setTitle("Exercise16_03");
            stage.setScene(scene);
            stage.show();
        }
        /**
         * @param args
         * main方法
         */
        public static void main(String[] args){
            Application.launch(args); 
        }
    }

    爱我没结果!
  • 相关阅读:
    高级软件工程2017第2次作业—— 个人项目:四则运算题目生成程序(基于控制台)
    高级软件工程2017第1次作业
    2017高级软件工程 课程信息
    15061009-第0次作业(阅读与感想)
    新的開始!第一次作業
    软工实践第一次作业
    OO第四单元作业总结
    OO第二单元作业总结
    OO第一单元作业总结
    Dell BOSS 卡是什么
  • 原文地址:https://www.cnblogs.com/angoli/p/12727882.html
Copyright © 2020-2023  润新知