编写图形界面程序,显示一个红色反弹球的程序,当该球撞击Applet边框时,它应从边框弹回并以相反方向45°运动。

import javax.swing.*;
import java.awt.*;class BallPanel extends JPanel implements Runnable {ball_move BM = null;public BallPanel() {BM = new ball_move();Thread t = new Thread(BM);t.start();//这一行不加会导致画面停止不动}public void paint(Graphics g) {//画球super.paint(g);setBackground(Color.white);setForeground(Color.white);g.fillOval(0, 0, 20, 20);//fillOval(int x,int y,int width,int height)使用度当前颜色填充外接指定矩形框的椭圆。this.drawBall(BM.ball.getX(), BM.ball.getY(), BM.ball.getWidth(), BM.ball.getHeight(), g);}public void drawBall(int x, int y, int width, int height, Graphics g) {g.setColor(Color.red);g.fillOval(x, y, width, height);}public void run() {while (true) {try {Thread.sleep(5);} catch (Exception e) {e.printStackTrace();}this.repaint();//数据在ball_move中设置}}
}
//球的参数
class Ball {int x,y,width,height;int x_speed = 1,y_speed = 1;public void setX(int x) {this.x = x;}public int getX() {return x;}public void setY(int y) {this.y = y;}public int getY() {return y;}public void setWidth(int width) {this.width = width;}public int getWidth() {return width;}public void setHeight(int height) {this.height = height;}public int getHeight() {return height;}public Ball(int x, int y, int width, int height) {this.x = x;this.y = y;this.width = width;this.height = height;}
}
//球移动的数据,并在BallPanel不断重画
class ball_move implements Runnable {Ball ball = new Ball(0, 100, 40, 40);public void run() {while (true) {try {Thread.sleep(5);} catch (Exception e) {e.printStackTrace();}ball.x += ball.x_speed;ball.y += ball.y_speed;if (ball.getX() > 400 || ball.getX() < 0) {ball.x_speed = -ball.x_speed;}if (ball.getY() > 400 || ball.getY() < 0) {ball.y_speed = -ball.y_speed;}}}
}public class BallFrame extends JFrame {public static void main(String[] args) {BallFrame experiment = new BallFrame();}public BallFrame() {BallPanel p = new BallPanel();Thread BM = new Thread(p);//运动的代码BM.start();this.add(p);this.setSize(450, 480);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}
}

编写图形界面程序,显示一个红色反弹球的程序,当该球撞击Applet边框时,它应从边框弹回并以相反方向45°运动。相关推荐

  1. java 在界面上画一个时钟_编写程序显示一个时钟 - javaCoder的个人页面 - OSCHINA - 中文开源技术交流社区...

    编写程序显示一个时钟.示例输出如图所示. 代码: package com.DisplayClock; import javax.swing.*; import java.awt.*; import j ...

  2. Java黑皮书课后题第7章:***7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能相互攻击(没有两个皇后在同行、同列、同一对角线)。编写程序显示一个解决方案

    7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能相互攻击(没有两个皇后在同行.同列.同一对角线).编写程序显示一个解决方案 题目 题目描述 破题 题目 题目描述 ...

  3. python打代码运行图形_利用aardio给python编写图形界面

    前阵子在用python写一些小程序,写完后就开始思考怎么给python程序配一个图形界面,毕竟控制台实在太丑陋了. 于是百度了下python的图形界面库,眼花缭乱的一整页,拣了几件有"特色& ...

  4. 如何编写好的代码/成为一个更好的程序员

    如何编写好的代码/成为一个更好的程序员 几个月前,有一位演讲者来到公司谈论优美的代码,他的论点是优美的代码以许多不同的形式出现.简单中有优美,折衷中有优美,稳定性上有优美,功能上有优美,坚固性上有优美 ...

  5. Linux对显卡驱动相关操作后,重启进不去图形界面,左上角一个横杠在闪

    问题描述: NVIDA显卡驱动随着linux内核的更新而失效,nvida-smi没有出现显卡的相关信息.于是尝试之间在软件和更新这里选择驱动.结果是在重启进不去图形界面,左上角一个横杠在闪. 原因分析 ...

  6. 2021-05-23:打开Office后界面上显示一个横幅提示:你的许可证不是正版,并且你可能是盗版软件的受害者

    症状:安装的Office 2019激活后,在账户中查询时明明是"已激活",但是打开Office后界面上显示一个横幅提示:"你的许可证不是正版,并且你可能是盗版软件的受害者 ...

  7. linux非图形化界面,在Linux图形界面中显示中文,非图形界面中,显示英文

    在Linux图形界面中显示中文,非图形界面中,显示英文 设置语言,应当改环境变量LANG 1. 在非Xwindow下显示英文.非Xwindow下不能显示中文汉字,如果设置成中文,则中文部分显示乱码,第 ...

  8. 设计一个程序显示一个桌子的信息,包括桌子的类型(长方形、正方形、圆形)、腿数、高度和面积,其中面积是通过根据桌子类型不同而输入不同的数据来计算得出

    设计一个程序显示一个桌子的信息,包括桌子的类型(长方形.正方形.圆形).腿数.高度和面积,通过根据桌子类型不同而输入不同的数据来计算得出: 要点提示: 1)  桌子的形状可以使用一个整数变量来表示,例 ...

  9. 用微信开发者小程序写一个加法计算器小程序

    文章目录 前言 一.calculator.wxml代码 二.calculator.js代码 结果 前言 提示:用软件微信开发者小程序写一个加法计算器小程序 一.calculator.wxml代码 &l ...

最新文章

  1. 2019-4-23 plan
  2. Hadoop生态圈以及各组成部分的简介
  3. here with you
  4. 学习使用Bing Maps Silverlight Control(一):准备和新建
  5. SpringCloud stream连接RabbitMQ收发信息
  6. RBAC权限模型库表设计
  7. access升级mysql_将现有的Access数据库升级为SQL
  8. Springboot接收ajax提交JSON数组
  9. SQL存储过程和函数区别(超级简单,人人都可以看懂)
  10. Windows下Nginx源码编译指南
  11. 如何进行cad地理配准_如何对扫描图片进行ArcGIS配准?
  12. Instagram for Business Instagram商业技巧 Lynda课程中文字幕
  13. 计算机一级证件照尺寸,照相馆不会告诉你的哪些事:常用证件照尺寸汇总
  14. 固定定位(fixed)和粘性定位(sticky)的比较
  15. 华三交换机 RRPP V7版本
  16. ProFTPD对接LDAP
  17. putty 显示鼠标
  18. win10下安装openvino遇到的一些问题及解决方法
  19. 计算机科学家证书,软件自动验证的追梦者——吴志林,2020年CCF-IEEE CS青年科学家奖获得者...
  20. Java语言规格说明

热门文章

  1. nyoj 307(最短路变形)
  2. nyoj676小明的求助
  3. MasterSlave是什么?
  4. 华东交通大学2017年ACM双基程序设计大赛题解
  5. 使用Hyper-V安装Ubuntu16.04 Server 网络配置
  6. [luoguP1773] 符文之语_NOI导刊2010提高(02)(DP)
  7. 同时打开两个excel工作窗口
  8. [导入]MsAjax Lib- Array.remove 函数
  9. 分数运算C++代码实现
  10. shell脚本的两种执行方式区别举例