也可以在我上传的资源进行下载

package 课程设计.ball.last;import javax.swing.*;public class Main {public static void main(String[] args) {//在主类中新建一个框架并设置属性JFrame frame = new JFrame("打砖块");frame.setResizable(false);//不可缩放frame.setBounds(300, 200, 700, 700);//窗口大小frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//用于关闭frame.add(new BallPanel());//新建BallFrame类并加入框架frame.setVisible(true);//设置可见性}
}
package 课程设计.ball.last;public class zhuan {private boolean ok;private boolean color;private int x;private int y;public zhuan() {}public zhuan(boolean ok, boolean color, int x, int y) {this.ok = ok;this.color = color;this.x = x;this.y = y;}public boolean isOk() {return ok;}public void setOk(boolean ok) {this.ok = ok;}public boolean isColor() {return color;}public void setColor(boolean color) {this.color = color;}public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}
}
package 课程设计.ball.last;import javax.swing.*;
import java.net.URL;public class Date {public static URL ballURL =Date.class.getResource("课程设计.ball.png");public static ImageIcon ball = new ImageIcon(ballURL);}
package 课程设计.ball.last;import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;public class BallPanel extends JPanel implements ActionListener, KeyListener {/*** 球的状态*/int ballX;int ballY;int ballXV;int ballYV;boolean ballcolor;//板子(鼠标)状态int Mouse_X;int Mouse_Y;boolean Mouse_Color;boolean isStart;boolean isFail;//随机数Random random;//砖块类数组zhuan[] zhuan;final int wide = 100;final int high = 30;Timer timer = new Timer(10, this);//构造方法public BallPanel() {init();//鼠标移动监听this.addMouseMotionListener(new Mou());//按压监听this.addMouseListener(new Mou());this.setFocusable(true);this.addKeyListener(this);timer.start();isStart = false;}//初始化方法public void init() {//坐标设置ballX = 450;ballY = 450;ballXV = 5;ballYV = 4;ballcolor = true;//板子属性设置(鼠标坐标)Mouse_X = 500;Mouse_Y = 500;Mouse_Color = true;//随机数random = new Random();//新建砖块,并设定位置大小zhuan = new zhuan[20];for (int j = 0, i = 0; j < 5; j++) {for (int k = 0; k < 4; k++) {int result = random.nextInt(100);if (result % 2 == 0) {zhuan[i] = new zhuan(true, true, 25 + j * 130, 25 + k * 40);} else {zhuan[i] = new zhuan(true, false, 25 + j * 130, 25 + k * 40);}i++;}}}//绘画类@Overrideprotected void paintComponent(Graphics g) {super.paintComponent(g);if (ballcolor) {g.setColor(Color.RED);} else {g.setColor(Color.BLUE);}g.fillOval(ballX, ballY, 20, 20);this.setBackground(Color.white);//画砖块for (int i = 0; i < 20; i++) {if (zhuan[i].isOk()) {if (zhuan[i].isColor()) {g.setColor(Color.RED);} else {g.setColor(Color.blue);}g.fillRect(zhuan[i].getX(), zhuan[i].getY(), wide, high);}}//绘制板子if (Mouse_Color) {g.setColor(Color.RED);g.fillRect(Mouse_X - 50, Mouse_Y - 10, 100, 10);g.setColor(Color.BLUE);g.fillRect(Mouse_X - 50, Mouse_Y, 100, 10);} else {g.setColor(Color.BLUE);g.fillRect(Mouse_X - 50, Mouse_Y - 10, 100, 10);g.setColor(Color.RED);g.fillRect(Mouse_X - 50, Mouse_Y, 100, 10);}// 开始和结束文字if (!isStart) {g.setColor(Color.BLACK);g.setFont(new Font("微软雅黑", Font.BOLD, 40));g.drawString("鼠标双击开始游戏", 300, 300);}if (isFail) {g.setColor(Color.BLACK);g.setFont(new Font("微软雅黑", Font.BOLD, 40));g.drawString("游戏结束", 300, 300);}}/*** 事件监听类*/@Overridepublic void actionPerformed(ActionEvent e) {//与墙和挡板的碰撞判定if (isStart && !isFail) {//左右边界if (ballX >= 680 || ballX <= 0) {ballXV *= -1;} else if (ballY <= 0 || ballY >= 650) {//上下边界ballYV *= -1;} else if (ballY >= 640) {//失败判定isStart = !isStart;}//板子与球碰撞判定if (ballX >= Mouse_X - 50 && ballX <= Mouse_X + 50) {if (ballY >= Mouse_Y - 10 && ballY <= Mouse_Y) {//判断板子颜色和球颜色相同//只判定上方,按鼠标颜色属性...if (ballcolor == Mouse_Color) {ballYV *= -1;ballcolor = !ballcolor;}}}//砖块与球碰撞判定for (int i = 0; i < 20; i++) {if (zhuan[i].isOk()) {if (ballX > zhuan[i].getX() && ballY > zhuan[i].getY()) {if (ballX < zhuan[i].getX() + wide && ballY < zhuan[i].getY() + high) {if (ballcolor == zhuan[i].isColor()) {ballYV *= -1;zhuan[i].setOk(false);}}}}}//结束判定条件for (int i = 0, k = 0; i < 20; i++) {if (!zhuan[i].isOk()) {k++;if (k == 20) {isFail = true;break;}} else {k = 0;}}//运动ballX += ballXV;ballY += ballYV;repaint();}}@Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyCode() == KeyEvent.VK_SPACE) {System.out.println("1");}}/*** 鼠标监听类*/private class Mou extends MouseAdapter {//点击@Overridepublic void mouseClicked(MouseEvent e) {super.mouseClicked(e);Mouse_Color = !Mouse_Color;if (e.getClickCount() == 2) {isStart = !isStart;ballX = 300;ballY = 300;}repaint();}//坐标@Overridepublic void mouseMoved(MouseEvent e) {super.mouseMoved(e);Mouse_X = e.getX();Mouse_Y = e.getY();}}@Overridepublic void keyReleased(KeyEvent e) {}@Overridepublic void keyTyped(KeyEvent e) {}}

球的图形文件,用ball.png命名

打砖块游戏代码 java swing相关推荐

  1. java窗体 个人信心_帮忙写下代码java swing,个人信息实例

    展开全部 本人急忙62616964757a686964616fe59b9ee7ad9431333332636264做的:有什么不合要求的请再告诉我: package show; import java ...

  2. java swing mysql实现的员工工资管理系统项目

    下载链接https://download.csdn.net/download/RONNIE_Zz/12675313 项目功能 随着经济的发展,企业正向着大型化.规模化发展,而对于大中型企业,员工.职称 ...

  3. java swing最小化_Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果)...

    Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果) package swing; import java.awt.AWTException; import java ...

  4. java情人节_情人节写给女朋友Java Swing代码程序

    马上又要到情人节了,再不解风情的人也得向女友表示表示.作为一个程序员,示爱的时候自然也要用我们自己的方式. 这里给大家上传一段我在今年情人节的时候写给女朋友的一段简单的Java Swing代码,主要定 ...

  5. Java swing 代码例子

    Java swing 代码例子 package com; import java.awt.Button; import java.awt.Container; import java.awt.even ...

  6. java swing 聊天表情功能的实现(带完整代码)

    下载地址:https://gitee.com/zoyation/pic-chat 前言: 用java swing做聊天程序,可能是没事找事,也可能是大才小用,既然选择了就做吧 其中比较重要的功能可能就 ...

  7. 送给女朋友的java程序_情人节写给女朋友Java Swing代码程序

    马上又要到情人节了,再不解风情的人也得向女友表示表示.作为一个程序员,示爱的时候自然也要用我们自己的方式. 这里给大家上传一段我在今年情人节的时候写给女朋友的一段简单的Java Swing代码,主要定 ...

  8. Java Swing打猎射击游戏编程代码下载

    代码下载地址:http://www.zuidaima.com/share/1858069987494912.htm 原文:Java Swing打猎射击游戏编程代码下载 这是一款java swing编写 ...

  9. 给女朋友道歉的java代码_情人节写给女朋友Java Swing代码程序

    马上又要到情人节了,再不解风情的人也得向女友表示表示.作为一个程序员,示爱的时候自然也要用我们自己的方式. 这里给大家上传一段我在今年情人节的时候写给女朋友的一段简单的Java Swing代码,主要定 ...

最新文章

  1. gridView里如何添加详情按钮,点击它可以转到另一页,以获取该行的详细信息。
  2. 5.Java中的常量以及常量的分类
  3. DevExpress WPF v18.2新版亮点(四)
  4. tomcat 默认站点的配置
  5. promehteus 监控超时_05 . Prometheus监控Nginx
  6. 给力的网络 有道的性能——802.11n与WLAN
  7. ffmpeg + rtp介绍
  8. Android 通过baidu借口 获得移动基站方法
  9. linux远程桌面太卡,确保远程桌面管理顺畅稳定的方法
  10. Web在线报表设计器使用指南
  11. 数据结构与算法笔记:图搜索之DFS详解
  12. python-谷歌小恐龙游戏
  13. 山大郝老师 计算机学院,相约山大 一起扬帆远航
  14. 【Apache Spark 】第 10 章使用 MLlib 进行机器学习
  15. ChatGPT惊人语录大赏
  16. 题解 【提高】小 X 学游泳(swim)
  17. 《MongoDB入门教程》第14篇 CRUD之更新文档
  18. 用 addr2line 定位 OOPS 死机代码位置
  19. 惠普幻影精灵3 安装Ubuntu16.04.04 无线网卡不能使用问题
  20. 红米10android auto,红米手机发展史,共10代机型,你用过其中哪几代

热门文章

  1. 后台管理系统----day17
  2. 浙江大学计算机学霸作息,浙大男神学霸:学习时间计划精确到“分、秒”,作息表引家长点赞...
  3. db2数据库创建编目
  4. python 3.5 安装pip
  5. 网络安全学习路线,入门到入坟,史上最全网络安全学习路线整理
  6. python 音频变调不变速方法
  7. 计算机毕业设计 SSM法律知识教育平台 法律知识普及平台 普法知识平台Java
  8. 网络变压器插入损耗对网络变压器数据传输的影响
  9. 搞搞字节,byte的小知识
  10. ffmpeg播放器快进快退(七)