题目描述:

在窗口的北面添加一个下拉列表,该下拉列表有“红灯”,“绿灯”,“黄灯”三个选项。在窗口的中心添加一个画布,当用户在下拉列表选择某项后,画布上绘制相应的信号灯。

参考结果:

代码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;import java.awt.Graphics;public class Test extends JFrame {public JComboBox box;int flag = 0;jpNewPanel jpNewPanel;public static void main(String[] args) {Test frame = new Test();frame.setSize(500, 500);//图形界面大小frame.setLocationRelativeTo(null);//图形界面出现在屏幕中央frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭frame.setTitle("信号灯");//标题frame.setVisible(true);}public Test() {box = new JComboBox();box.addItem("请选择");box.addItem("红灯");box.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {flag = box.getSelectedIndex();//判断点击的下拉框的第几个标签jpNewPanel.repaint();}});box.addItem("黄灯");box.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {flag = box.getSelectedIndex();//判断点击的下拉框的第几个标签jpNewPanel.repaint();}});box.addItem("绿灯");box.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {flag = box.getSelectedIndex();//判断点击的下拉框的第几个标签jpNewPanel.repaint();}});add(box, BorderLayout.NORTH);jpNewPanel = new jpNewPanel();add(jpNewPanel, BorderLayout.CENTER);}class jpNewPanel extends JPanel {protected void paintComponent(Graphics g) {super.paintComponent(g);g.drawOval(150, 100, 120, 120);//绘制圆形if (flag == 1) {g.setColor(Color.RED);g.fillOval(150, 100, 120, 120);//填充颜色} else if (flag == 2) {g.setColor(Color.YELLOW);g.fillOval(150, 100, 120, 120);} else if (flag == 3) {g.setColor(Color.GREEN);g.fillOval(150, 100, 120, 120);}}}
}

运行结果:


Java 实训5 编写一个窗体应用程序模拟交通信号灯相关推荐

  1. 【Java小项目实训】编写一个窗体程序模拟单词拼写

    实训要求 窗口中有一个TextFie1d对象和一个按钮对象,将这两个对象添加到一个面板中,然后将该面板添加到窗口的北面.用户在TextField 对象中输入一个英文单词,然后回车或单击按钮,程序将创建 ...

  2. 用java编写日历添加窗口一角_Java 实训4 编写一个窗体程序显示日历

    实训要求: 1.使用BorderLayout 进行总体布局 2.在North 位置放置包含两个按钮( 上月和下月)的Panel 3.在South 位置放置一个Label 用于显示当前年份和月份 4.在 ...

  3. 【学习笔记】大三集中实训做的一个微信小程序之点餐系统(静态页面不包含java后台逻辑)

    点餐系统 注:大三集中实训的时候由于没有什么经验,只实现了静态页面,但微信小程序开发文档里面所有的功能差不多都实现(视频的上传与下载以及登录等等)所以在这里记录自己的学习笔记 目录 **点餐系统** ...

  4. Java 实训 使用弹出对话框设置主窗体中的文本字体

     实训要求: 编写一个主窗体,该窗体有"设置字体"按钮和一个文本区. 编写一个JDialog的子类; FontDialog,其中使用下拉列表显示全部 字体的名称,当选择下拉列表中某 ...

  5. java实训意义_java实习心得体会

    通过java实习,我自身发生了重大的转变,我相信我会在JAVA开发这条路上走的更长更远,分享心得体会.下面是学习啦小编为大家收集整理的java实习心得体会,欢迎大家阅读. java实习心得体会篇1 经 ...

  6. java实训题:随机点名器

    随机点名器 不久以前,有个小伙伴问我一个实训题,它是要写一个随机点名器,需要用到输入输出,方法的封装的思想完成的. 题目要求:编写一个随机点名程序,使其能够在全班同学中随机点中某一名同学的名字,要求随 ...

  7. JAVA实训项目:银行网银系统管理平台(含源码)

    JAVA实训项目:银行网银系统管理平台(含源码) 文章目录 JAVA实训项目:银行网银系统管理平台(含源码) 前言 一.项目功能需求描述以及相关技术的应用 相关技术应用 二.设计过程 系统流程图 1. ...

  8. android订餐系统实训总结,订餐系统的java实训报告.ppt

    订餐系统的java实训报告.ppt MingD互联网订餐电子商务系统 PPT模板下载 1需求分析2建立数据库3编码4页面设计5测试及调试 项目开发过程 小组分工 数据库部分我们采用Javabean对象 ...

  9. 计算机Java校内实训报告_计算机java实训总结的范本

    计算机java实训总结的范本 这一期的实习,虽然实习的时间不长,但是总体上收获挺大的,学习中我不但有了学习成果的喜悦,而且自己也日渐成熟,有种说不出的喜悦.以下是我在这次实习中的一些感悟和体会: 1. ...

最新文章

  1. 干货 | XGBoost在携程搜索排序中的应用
  2. npm run build生成路径问题
  3. 【Android Studio快捷键】之导入对应包声明(import packages)
  4. 中国18岁美女机器人:出得厅堂,下得厨房,还要什么女朋友!
  5. jmeter接口测试多数据组合登陆场景
  6. ExtJs异步ajax调用和同步ajax调用公用方法
  7. [转帖]Mootools源码分析-03 -- Hash
  8. 【BZOJ】1798: [Ahoi2009]Seq 维护序列seq(线段树)
  9. SAP Spartacus部署到SAP Commerce Cloud,不同的系统设置不同的OCC Base url
  10. RocketMQ中的死信队列
  11. HDU3363_贪心
  12. C语言之预处理探究(一):宏
  13. mysql 连边聚合_MySQL分组,聚合函数,连表查询,子查询
  14. 《Java技术》第六次作业
  15. php开发环境浏览器有哪些,ie内核浏览器有哪些
  16. 横向对比22款思维导图工具,最好用的我觉得是这款!
  17. iOS 一键加入QQ群(项目常用)
  18. php编程怎样装数据库,php数据库管理工具phpmyadmin下载、安装、配置
  19. 服务架构演变~超详细
  20. 【数据结构】字符串 模式匹配算法的理解与实现 Brute Force算法(BF算法)与KMP算法 (C与C++分别实现)

热门文章

  1. 定位定位定位定位定位定定定定定位
  2. 肝了一星期,终于把堆的创建、插入、删除和堆排序肝完了(超详细图文讲解)
  3. 非最大值抑制(NMS)(二)
  4. turtle.seth()
  5. cold-start problem(推荐系统)
  6. 学习python多久可以去找工作
  7. python实现回调函数,自定义事件
  8. 计算机职称考试网络模块试题,计算机职称考试Excel2003模块试题
  9. Suse linux 挂载OSSFS
  10. Navicat远程连接服务器mysql 1045错误