zoukankan      html  css  js  c++  java
  • 用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); 
        }
    }

    爱我没结果!
  • 相关阅读:
    WPF学习笔记2——WPF子线程更新UI
    WPF学习笔记1——VS2019新建WPF程序
    Asp.Net Core学习笔记3—— .NET Core SDK
    Asp.Net Core学习笔记2—— IIS部署
    Asp.Net Core学习笔记1—— 静态页面
    NGUI带翻页的滑动列表拓展
    用Lua的协程实现类似Unity协程的语句块
    Lua模除运算的大坑
    数据结构和算法总结(三):A* 寻路算法
    Unity3D学习(十一):关于UI销毁后图集仍然无法释放问题的解决办法
  • 原文地址:https://www.cnblogs.com/angoli/p/12727882.html
Copyright © 2011-2022 走看看