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); 
        }
    }

    爱我没结果!
  • 相关阅读:
    数据中心 CLOS 架构
    CLOS网络的无阻塞条件
    网络层 IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)
    Redis数据库之经典考核习题
    Redis数据库之服务器主从配置
    Redis数据库之KEY的操作与事务管理
    Redis数据库之数据基本管理操作
    Redis数据库安装与配置调试
    基于windows的Redis后台服务安装卸载管理
    面向对象数据模型的构建和分析
  • 原文地址:https://www.cnblogs.com/angoli/p/12727882.html
Copyright © 2011-2022 走看看