用java编写赛马_java applet 赛马小程序

2023-11-15

昨天写看java书的时候,觉得闷,就写了个小程序自我娱乐一下。技术含量不高,只是自我娱乐而已。下面的代码只要编译出class文件,再写一个HTML格式的文件,调用Arc2Demo2.class 就能看了。

/*该程序实现一个跑马比赛程序,各个选手的速度随机控制 */import java.awt.*;import java.applet.*;import java.awt.geom.*;import javax.swing.*;import java.lang.*;public class Arc2Demo2 extends Applet implements Runnable{ boolean boo; Thread th; int x; int x1; int x2; int x3; int x4; int x5; int x6; int x7; public void init() {  th=new Thread(this);  boo=true;  x=0;  x1 = 0;  x2 = 0;  x3 = 0;  x4 = 0;  x5 = 0;  x6 = 0;  x7 = 0; } public void start() {  th.start(); } public void paint(Graphics g) {  Graphics2D g2=(Graphics2D)g;                    //g2.setPaint(Color.blue);  Graphics2D g3 = (Graphics2D)g;  //g3.setPaint(Color.pink);  Graphics2D g4 = (Graphics2D)g;  Graphics2D g5 = (Graphics2D)g;  Graphics2D g6 = (Graphics2D)g;  Graphics2D g7 = (Graphics2D)g;  Graphics2D g8 = (Graphics2D)g;  Graphics2D g9 = (Graphics2D)g;  if(x<600&&x1<600&&x2<600&&x3<600&&x4<600&&x5<600&&x6<600&&x7<600)  {   if(boo)   {    g2.setPaint(Color.blue);    g2.fill(new Arc2D.Double(x,20,50,50,30,310,Arc2D.PIE));                   //绘制饼形圆弧    g3.setPaint(Color.pink);    g3.fill(new Arc2D.Double(x1, 90, 50, 50, 30, 310, Arc2D.PIE));    g4.setPaint(Color.red);    g4.fill(new Arc2D.Double(x2,160,50,50,30,310,Arc2D.PIE));    g5.setPaint(Color.green);    g5.fill(new Arc2D.Double(x3, 230, 50, 50, 30, 310, Arc2D.PIE));    g6.setPaint(Color.gray);    g6.fill(new Arc2D.Double(x4, 300, 50, 50, 30, 310, Arc2D.PIE));    g7.setPaint(Color.yellow);    g7.fill(new Arc2D.Double(x5, 370, 50, 50, 30, 310, Arc2D.PIE));    g8.setPaint(Color.orange);    g8.fill(new Arc2D.Double(x6, 440, 50, 50, 30, 310, Arc2D.PIE));    g9.setPaint(Color.black);    g9.fill(new Arc2D.Double(x7, 510, 50, 50, 30, 310, Arc2D.PIE));    boo=false;   }   else   {    g2.setPaint(Color.blue);    g2.fill(new Arc2D.Double(x,20,50,50,0,350,Arc2D.PIE));                    //绘制饼形圆弧,通过改变圆弧的角度来实现形状的变换    g3.setPaint(Color.pink);    g2.fill(new Arc2D.Double(x1, 90, 50, 50, 0, 350, Arc2D.PIE));    g4.setPaint(Color.red);    g4.fill(new Arc2D.Double(x2, 160, 50, 50, 0, 350, Arc2D.PIE));    g5.setPaint(Color.green);    g5.fill(new Arc2D.Double(x3, 230, 50, 50, 0, 350, Arc2D.PIE));    g6.setPaint(Color.gray);    g6.fill(new Arc2D.Double(x4, 300, 50, 50, 0, 350, Arc2D.PIE));    g7.setPaint(Color.yellow);    g7.fill(new Arc2D.Double(x5, 370, 50, 50, 0, 350, Arc2D.PIE));    g8.setPaint(Color.orange);    g8.fill(new Arc2D.Double(x6, 440, 50, 50, 0, 350, Arc2D.PIE));    g9.setPaint(Color.black);    g9.fill(new Arc2D.Double(x7, 510, 50, 50, 0, 350, Arc2D.PIE));    boo=true;   }   x+=10*Math.random()+1;                             //各个圆弧的速度由随机数控制   x1 += 10 * Math.random() + 1;   x2 += 10 * Math.random() + 1;   x3 += 10 * Math.random() + 1;   x4 += 10 * Math.random() + 1;   x5 += 10 * Math.random() + 1;   x6 += 10 * Math.random() + 1;   x7 += 10 * Math.random() + 1;  }  else  {   //wait();   if (x >= 600)    g2.drawString("No.1 win the match!",20,590);         //输出赢的选手号码,并重新开始比赛   if (x1 >= 600)    g3.drawString("No.2 win the match!", 20, 590);   if (x2 >= 600)    g4.drawString("No.3 win the match!", 20, 590);   if (x3 >= 600)    g5.drawString("No.4 win the match!", 20, 590);   if (x4 >= 600)    g6.drawString("No.5 win the match!", 20, 590);   if (x5 >= 600)    g7.drawString("No.6 win the match!", 20, 590);   if (x6 >= 600)    g8.drawString("No.7 win the match!", 20, 590);   if (x7 >= 600)    g9.drawString("No.8 win the match!", 20, 590);   //stop();   x=0;   x1 = 0;   x2 = 0;   x3 = 0;   x4 = 0;   x5 = 0;   x6 = 0;   x7 = 0;  } } public void stop() { } public void run() {  while(true)  {   repaint();   try   {    Thread.sleep(500);   }   catch(InterruptedException e){}  } } public static void main(String args[]) {  JFrame fr=new JFrame("2D演示");  fr.getContentPane().setBackground(Color.white);  Arc2Demo2 arc2=new Arc2Demo2();  arc2.init();  arc2.start();  fr.add(arc2);  fr.setSize(350,120);  fr.setVisible(true);  fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用java编写赛马_java applet 赛马小程序 的相关文章

  • 等保2.0二级安全要求

    第二级安全保护能力 应能够防护免受来自外部小型组织的 拥有少量资源的威胁源发起的恶意攻击 一般的自然灾害 以及其他相当危害程度的威胁所造成的重要资源损害 能够发现重要的安全漏洞和处置安全事件 在自身遭到损害后 能够在一段事件内恢复部分功能
  • Android中字母大小写切换的快捷键

    1 选中要切换到字母 eclipse ctrl shift x 转为大写 ctrl shift y 转为小写 2 Androidstudio字母大小写切换用一下方法或直接使用快捷键 大小写转换 Cmd Shift U Ctrl Shift
  • 使用Docker-compose部署redis主从

    废话少说 直接来上docker compose yaml文件 切记格式 version 2 networks myweb external name mysql docker compose myweb services redis mas
  • ICLR 2022最佳论文解读

    微信公众号 圆圆的算法笔记 持续更新NLP CV 搜推广干货笔记和业内前沿工作解读 后台回复 交流 加入 圆圆的算法笔记 交流群 回复 时间序列 多模态 迁移学习 NLP 图学习 表示学习 元学习 等获取各个领域干货算法笔记 今天给大家介绍
  • Nginx配置详情

    Nginx1 16 0安装详见 CentOS7 3编译安装LNMP之 一 Nginx 1 16 0安装 本文以nginx1 16 0编译安装版为例 目录如下 usr local nginx nginx的安装目录 usr local ngin
  • “logits”到底是个什么意思?

    1 什么是logits 说到Logits 首先要弄明白什么是Odds 在英文里 Odds的本意是指几率 可能性 它和我们常说的概率又有什么区别呢 在统计学里 概率 Probability 描述的是某事件A出现的次数与所有事件出现的次数之比
  • Map双列集合的四种遍历方式

    Map双列集合的四种遍历方式 第一种 键找值遍历方式 通过keySet 方法可以获取到所有键组成的Set集合 public Set
  • 关于Streamspot中StreamHash的介绍

    原文 Fast Memory efficient Anomaly Detection in Streaming Heterogeneous Graphs 在阅读这篇文章时 我对于文中所提到的StreamHash方法特别费解 在重复阅读了好几
  • 解决SwipeRefreshLayout和ViewPager滑动冲突的三种方案

    一篇文章读懂android事件消费 事件分发 事件拦截Android 源码分析事件分发机制 事件消费 事件拦截解决SwipeRefreshLayout和ViewPager滑动冲突的三种方案 在SwipeRefreshLayout的内部包一个
  • 论坛系统数据库设计

    论坛系统数据库设计 1 引言 2 QQ 摆烂式 设计 2 1数据表设计猜测 2 2分析增删查改实现方法 2 3分析QQ 摆烂式 的优缺点 2 4改进方法 3 盖楼式 设计 3 1数据表设计猜测 3 2数据表设计优化 4 推荐设计 1 引言
  • Matlab----下载和安装教程

    Matlab 下载 文件中有以下文件 Matlab 安装 步骤1 打开安装软件 步骤2 运行安装软件 在matlab 2018的文件夹下找到setup 选中右键以管理员身份运行 步骤3 选择使用文件安装密钥 然后点击下一步 步骤4 是否接收
  • 【1day】复现金和协同管理平台任意文件读取漏洞

    注 该文章来自作者日常学习笔记 请勿利用文章内的相关技术从事非法测试 如因此产生的一切不良后果与作者无关 目录 一 漏洞描述 二 影响版本 三 资产测绘 四 漏洞复现 一 漏洞
  • Unity3D-VR《静夜诗》3-开始按钮与开始文本信息

    Unity3D VR 静夜诗 3 开始按钮与开始文本信息 1 开始按钮及开始信息文本UI对象的设计 1 1容器对象PanelBeginUI 1 2开始信息文本TextBegin 1 3开始按钮BtnBegin 2 开始按钮实现凝视触发 凝视
  • 521 加速乐多层响应 Cookie逆向 + 代码高度混淆

    网址 aHR0cHM6Ly93d3cubWFmZW5nd28uY24vaS81Mzc2OTc4Lmh0bWw 目录 声明 本文章中所有内容仅供学习交流使用 不用于其他任何目的 不提供完整代码 抓包内容 敏感网址 数据接口等均已做脱敏处理 严
  • 《Centos7——elk+lnmp+zabbix+grafana来分析日志》

    目录 elk lnmp zabbix grafana来分析日志 一 Elasticsearch部署 192 168 234 130 1 上传安装包 2 安装elasticsearch kibana 3 修改es和kibana配置文件 4 启
  • weixin4j开发微信分享案例

    微信官方文档 步骤一 绑定域名 先登录微信公众平台进入 公众号设置 的 功能设置 里填写 JS接口安全域名 备注 登录后可在 开发者中心 查看对应的接口权限 步骤二 引入JS文件 在需要调用JS接口的页面引入如下JS文件 支持https h
  • 关于VUE中v-for循环的dom使用ref获取不到问题

    背景 初学vue做练习项目的时候 基于vue2 0版本使用refs属性获取v for循环的dom时出现获取不到dom的情况 尝试采用原生的方法出现同样的情况 查了很多资料没有找到对应的详细说明 现将我发现的一些问题分享给大家 html部分
  • 量化选股策略搭建(四)(短期策略搭建)

    量化选股策略搭建 四 短期策略搭建 首先我们需要把选股这个问题转化为一个机器学习问题 那么如何转化成机器学习问题呢 机器学习也分两类问题 1 回归问题 2 分类问题 常规的一些方法是预测股价增长来进行选股 回顾问题 这里我们将其转化为一个分
  • ZooKeeper 分布式协调工具

    目录 一 ZooKeeper 概述 二 ZooKeeper Windows 单机版安装 三 ZooKeeper 集群环境下选举过程 四 ZooKeeper 存储数据的过程 五 ZooKeeper 监听 六 java 操作 ZooKeeper

随机推荐

  • 为什么说python简单_为什么很多人都说 Python 简单?

    Python是一门入门简单 精通困难的编程语言 Python是一门比较高阶的语言 在基本语法和使用方面没有C Java那么复杂 因此 对于入门者来说 很接近于自然语言的表述方式 经过短暂的的学习就可以完成一些简单的工作 但是 我认为如果仅用
  • 面试官:有一个 List 对象集合,如何优雅地返回给前端?我懵了。。

    1 业务背景 业务场景中 一个会话中存在多个场景 即一个session id对应多个scene id和scene name 如果你写成如下的聚合模型类 public class SceneVO private String sessionI
  • [leetcode]Python实现-389. 找不同

    389 找不同 描述 给定两个字符串 s 和 t 它们只包含小写字母 字符串 t 由字符串 s 随机重排 然后在随机位置添加一个字母 请找出在 t 中被添加的字母 示例 输入 s abcd t abcde 输出 e 解释 e 是那个被添加的
  • oracle 数据库基础知识复习

    1 单表的数据查询 1 1指定字段的数据记录查询 select field1 field2 FROM 表名 WHERE CONDITION 例 select t stuname t age t sex from STUINFO t wher
  • curl命令介绍与使用

    curl 全称CommandLine URL 或 CommandLine Uniform Resource Locator 顾名思义 curl命令是在命令行方式下工作 利用URL的语法进行数据的传输或者文件的传输 这个命令行工具现在多用于U
  • 基于Python Django Mysql 开发的宠物用品商城

    最近做的一个程序设计 核心是基于django做一个商城 功能包含登录 注册 商品浏览 购物车 支付模块 支付宝沙箱支付 评价 轮播图 开发环境 Python版本 3 8 7 Django版本 3 1 5 数据库版本 mysql8 数据库管理
  • Hive(二):获取HiveConnection,及重现获取过程中的某些问题。

    为什么80 的码农都做不了架构师 gt gt gt 一 未创建Maven工程 所需jar包都是自己一一找的 结果碰到许多缺包问题 最后我的lib下包为 二 尝试获取HiveConnection 先附上成功获取HiveConnection的代
  • nexus3 Unauthorized问题解决

    环境 Nexus3 version 3 20 1 01 问题 nexus3 在安装完后通过mvn deploy命令 出行 Return code is 401 ReasonPhrase Unauthorized 异常 分析解决 1 mave
  • Hadoop集群启动后,在web:50070端口只有两个datanode节点

    spark集群部署规划 hadoop1 master worker datanode namenode secondarynamenode hadoop resourcemanager nodemanager yarn hadoop2 wo
  • 使用AD14制作PCB的全部流程以及PCB打样流程介绍

    文章目录 1 各PCB打样公司 1 1 深圳嘉立创 1 2 捷配 1 3 华秋 1 4 猎板 2 嘉立创PCB打样流程 2 1 在线下单 2 2 上传PCB文件 2 3 选择板子数量 2 4 工艺参数设置 3 AD元器件库 4 AD14创建
  • 上手Web自动化测试(Python+selenium+unittest)

    从安装库 包和文件配置上手Web自动化测试 Python主要用selenium和unittest库 此外还有用于远程测试的Selenium Server包 浏览器需要配置chromedriver 1 安装selenium库 可以在Pycha
  • Robot Framework (分层实现UI自动化)

    更多资源请前往博主个人网站 http www qabujiaban com Robot Framework介绍与安装 目录 Robot Framework介绍与安装 Robot Framework是什么 什么是自动化测试框架 Robot F
  • linux Ubuntu 引导,重建ubuntu的grub开机引导

    这里将告诉您重建ubuntu的grub开机引导 具体实现方法 pc开机时 在进入系统之前 要先进入的磁盘里安装了grub开机引导的区域 如果是单系统一般不会有问题 但若是多系统像win ubuntu或者ubuntu ubuntu等 有时会出
  • VS2019+Qt Release模式下显示打印信息

    使用VS作为Qt的开发工具 在Debug模式下开发 软件的运行效率不如Release模式下高 所以经常会出现在Release模式下 查看程序的打印输出 只需要在项目属性配置一下即可 点击项目右键 属性 生成事件 生成后事件 在命令行里添加下
  • HJ212-Pack HJ212协议组包实现

    HJ212 Pack HJ212协议组包实现 仓库地址 https gitee com ll0 0ll HJ212 Pack HJ212协议认识 https blog csdn net lblmlms article details 108
  • STM32定时器----TIMx->SR寄存器

    在研究stm32定时器时发现 当进入定时器的中断时 定时器计数器以及中断接收时正常运行的 并没有因为进入中断而停止 具体看以下分析 定时器初始化代码 TIM捕获通道开启宏定义 1 开启 0 关闭 define TIM ICCH1 1 def
  • Vite热更新不起作用

    错误示例 path show component gt import views Show index vue show 目录名 注意路由中是大写开头 这里是小写的 这就是问题所在 Index vue 文件名 这样写目录名或文件名与路由中写
  • Windows10 搭建vs2017OpenGL ES 3.0 开发环境

    前言 更新于2021 06 29 1 首先下载 OpenGL ES 3 0 Programming Guide 随书源码 直接使用CMake工具生成vs2017代码工程 然后使用vs2017打开工程 ES3 Book sln 然而 vs报错
  • mysql多对一、多对多查询实践

    最近做的功能涉及这方面 算是练了一下 首先多对一部分较简单 多的那一方表 多设置一个字段是少的那一方的id 主键 具体查询时候关联查询即可 可设置外键进行级联操作 具体以后做到这个功能再更新 多对多 设备和用户多对多 一个用户可有多台设备
  • 用java编写赛马_java applet 赛马小程序

    昨天写看java书的时候 觉得闷 就写了个小程序自我娱乐一下 技术含量不高 只是自我娱乐而已 下面的代码只要编译出class文件 再写一个HTML格式的文件 调用Arc2Demo2 class 就能看了 该程序实现一个跑马比赛程序 各个选手