刚好博主在b站漫无目的的寻找着题材的时候看到了一个写贪吃蛇游戏的视频,于是便写了这篇文章来怀念一下。...快来和小伙伴们一起玩贪吃蛇吧兄弟们,(虽然编译器运行后的贪吃蛇是单机游戏,哈哈,但还是可以两个人轮流玩,比分数的)。 运用到的知识点: GUI:java实现窗体、Swing。...import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener...; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.Random; public...,需要通过固定的时间(事件)来刷新 @Override public void actionPerformed(ActionEvent e) { if(isStart &
AWT 和 Swing 都能跨平台使用;AWT 会随着不同的系统平台,UI 样式会有所变化,Swing 则不会,设计完毕后在所有平台下样式一致。...import java.awt.*; import javax.swing.*; 一个 awt 示例 下面是一个窗口示例 import java.awt.*; public class MyFrame...事件 java 中,事件分为三个方面描述, 事件源:发生事件的对象 事件处理:委托事件处理模型 事件监听者:负责处理事件 ? 首先B监听A,设置监听的内容,并设置响应内容。...文本框的构造函数如下 TextField():构造一个单行文本输入框。 TextField(int):指定长度的单行文本输入框。...TextField(String):指定初始内容的单行文本输入框。 TextField(String, int):指定长度、指定初始内容。
import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener....*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent....*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent....*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent....*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent
Data.food = food; } } 游戏面板类 package com.tang.retor_snaker; import javax.swing.*; import java.awt....*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent...; import java.awt.event.KeyListener; import java.util.Arrays; import java.util.Random; public class...int foodY; // 让食物出现的位置随机 Random random = new Random(); // 游戏是否结束:结束为=true - 游戏中=false...isVictory) { // 身体移动:右移:即让后一个移到前一个的位置即可!
在本文中,我将向你展示如何利用Java Swing技术,以及一些简单的代码,让彩色气球在屏幕上飘舞起来。这种视觉效果不仅适合儿童节,也可以为你的应用程序增添一份活力和趣味。...Swing最初是作为一个可选的扩展包提供的,后来在1998年被集成到了Java 2平台中,并成为了Java标准图形用户界面技术。...事件是指Swing组件所响应的用户操作或系统通知,如鼠标点击、键盘输入等,它们都继承自java.awt.AWTEvent类,并使用了观察者模式来实现事件监听和分发。...布局是指Swing组件在容器中的排列方式,如水平对齐、垂直对齐等,它们都实现了java.awt.LayoutManager接口,并提供了一些常用的布局管理器,如流式布局、网格布局等。...java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.GeneralPath;
数组版本源码: import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.Dimension...; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import...; import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Font;...import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader...数组版本默认读取最大100个人,如果班级学生超过100人了自行修改数组readclass方法中的的数组长度即可。 运行截图:
com.company; import javax.imageio.ImageIO; import javax.sound.sampled.*; import javax.swing.*; import java.awt....*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent...; import java.awt.event.KeyListener; import java.io.BufferedInputStream; import java.io.IOException;...g.fillRect(25,75,850,600); //设置画笔颜色为白色 g.setColor(Color.white); //设置长度显示...isStart; } //判断开始后循环播放背景音乐 if(isStart){ bgm.loop
GamePanel:游戏控制面板 package com.xdr630.snake; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent...; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener..."微软雅黑",Font.BOLD,40)); g.drawString("失败, 按下空格重新开始",200,300); } } //接收键盘的输入...; } else if (keyCode == KeyEvent.VK_DOWN) { fx = "D"; } } //定时器,监听时间...实现效果 完成后也可打成 jar 包,使用终端执行 java -jar xxx.jar 运行,效果和idea运行效果一样,方便移动。
用Java编写精典小游戏——贪吃蛇!...前言 我想贪吃蛇应该是不少90后和00后的童年(我本人是01年的),回想起从前偷偷拿着我爹的诺基亚在被窝里玩贪吃蛇,不禁感慨万分,时间飞逝,没想到10年后的我也可以自己做一个贪吃蛇了。...Snake snake = new Snake(); snake.myJFrame(); } } Snake类 import javax.swing.*; import java.awt....*; import java.awt.event.*; import java.util.Random; public class Snake extends JFrame implements KeyListener...[0] == Snakey[i]) { started = 2; } } // 判断食物是否随机在了蛇身上
即使如此,它也可以在较短时间内通知到听到消息的大部分人,所以说UDP协议是一种不可靠的协议,但是对于需要快速传输信息,并且能够容忍小的错误的通信,可以考虑使用UDP协议。...在进行程序的接收时,必须指定一个端口号,不允许系统随机生成,此时可以使用第二种构造函数,就像你去发快递收货地址必须指定是一样的,在发送程序时通常使用第一种构造函数,不需要指定端口号,这就像发快递不管去哪一个快递公司都可以...; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent..."); //定义停止接收按钮 JTextArea startTextArea = new JTextArea(10,10); //定义开始接收后显示的文本框 JTextArea stopTestArea...stopReceive.addActionListener(this); //为停止接收按钮添加监听 JPanel textJPanel = new JPanel(); //新建一个面板放置显示接收信息
两个按钮,一个JLabel,点开始按钮后,彩票33选7(1……33中选7个不重复的数),把7个数字拼接到JLabel中显示出来,点结束按钮停止。...提示:java.util.Random 参考 nextInt函数 借助集合实现。 随机彩票生成,每0.5秒一次。...**运用到的知识:用两个数组实现多个不重复的随机数的产生;Timer类及其方法的使用(Timer类封装了线程);事件的监听。 ?...package classic3IOAndThread; import java.util.Arrays; import java.util.Random; import java.awt.*; import...java.awt.event.*; import javax.swing.*; public class LotteryMachine implements ActionListener { int[
(2)空格键暂停或继续游戏,并在随机的地方产生食物。 (3)吃到食物就变成新的蛇体(蛇身长度变长,游戏继续)。 实现过程 (1)绘制窗体对象。...(3)使用键盘监听事件和定时器实现小蛇的移动。 (4)小蛇与食物碰撞的实现。 (5)定义变量存放小蛇长度,遍历数组实现小蛇身体的增加功能。...; import java.awt.Font; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener...; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.Random; import...在使用Java编写该项目时遇到了很多问题,在解决问题时,可以对java的面向对象编程有更加深入的理解和认识。 ---- 本项目在一定程度上还有缺陷,仅用于初学者学习,欢迎各位指正。
事件模型如何理解呢,举个例子,你老婆出门了,让你在家看孩子,难道你每过一分钟就去看一次孩子吗,对于计算机来说,我做一个按钮,难道就一直监听这个按钮使用没有吗,这样的话对于资源消耗太大了,所以最好的办法就是在孩子手上系个铃铛...import java.awt.*; import java.awt.event.*; public class TestActionEvent { public static void main...MouseEvent java中事件监听的接口名称都非常有规律,监听动作的叫ActionListener,监听鼠标的叫MouseListener,监听键盘的叫KeyListener MouseLinsenter...import java.awt.*; import java.awt.event.*; import java.util.*; public class MyMouseAdapter { public...import java.awt.*; import java.awt.event.*; public class TestKey { public static void main(String
; import javax.swing.*; import java.awt.*; /** * 游戏的面板 */ public class GamePanel extends JPanel {...设置游戏状态 游戏状态主要分为开始和停止两种,我们默认游戏状态为停止, 依旧是在类GamePanel中进行设置, 添加一个boolean对象, //游戏状态:开始,停止 boolean isStart...); //获得焦点事件 this.addKeyListener(this); //获得键盘监听事件 } 初始化状态, 点击空格后, 设置定时器 通过对固定事件的高频率刷新,实现动画效果...绘制食物布局 先是创建食物的坐标, //食物的坐标 int foodX; int foodY; 在初始化方法中添加如下语句,随机产生食物的位置, //把食物随机分布在界面上 foodX = 25 + 25...&& snakeY[0] == foodY){ //小蛇身体长度增加一节 length++; //一个食物加十点积分 score += 10; //再次随机分配食物
GUI的各种元素(如:窗口,按钮,文本框)由Java类实现。 使用AWT所涉及的类一般在 java.awt 包及其子包中。 Container 和 Component 是AWT中的两个和心态。....属重量级控件 (跨平台不够强) * * java.Swing:在AWT的基础上,建立的一套图形界面系统,器重提供了更多的组件, * 而且完全由java实现,增强了移植性,属于轻量级控件....* 事件源: * 事件:Event * 监听器:Listener * 时间处理:(引发事件后处理方式) * * 事件源:就是awt包或者swing包中的那些图像界面组件. * 事件:每个事件源都有自己特定的对应时间和共性时间...Button事件监听 例如: import java.awt.*; import java.awt.event.*; public class test { public...TextField有如下常用方法: TextField事件监听 TextField对象可能发生Action(光标在文本框内敲回车)事件。
java的awt大量的运用到了此种模式,例如可以给button对象添加一个点击事件,当鼠标点击时,就会调用事件处理程序。...package cn.zq.demo; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent...、最后访问时间 (3)可以踢出某个用户 分析:只要有人登录(输入了用户名)就会放到session中,Session.setAttribute("user", "zq"); 实现第一个核心类: package...2.5、ServletContextListener用于监听ServletContext的创建和销毁 这个监听器很有用,比如可以在web容器启动的是否加载一些配置文件,执行一些初始化操作,web容器停止时...listener-class> cn.zq.listener.MyServletContextListener (2)从jsp页面获取访问次数,测试tomcat正常停止后
在Java中GUI提供了对象在 java.awt 和 javax.swing 两个包中 在早年中, Java.awt为抽象窗口工具包, 英文为 Abstract Window ToolKit, 需要调用本地的系统方法来实现功能需求...component 子类 window java.awt 类 Frame java.lang.Object -> java.awt.Component -> java.awt Container -...frame import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextField...- Listener 事件处理 Button java.awt classButton java.lang.Object -> java.awt.Component -> java.awt.Button...鼠标事件(按,释放,单击,输入和退出)的侦听器界面。
生成随机验证码 验证码,就是后端随机生成的一串字符串,然后拼接成一个图片,返回给前端的一个过程。怎么生成一串随机的字符串,怎么创建一个图片?...生成随机字符串,创建图片 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage...,高一定,每隔18px间距设置字体 } return img;//返回一个图片 } } 创建servlet,给前端进行返回信息 import java.awt.image.BufferedImage;...+num++); } 总结 在某个范围内生成随机数,取到字符串的长度,这样就可以随机取到几个验证码,然后把它绘制到img上,返回给前端。...验证码可以放在session中,每一次操作在session中取出验证码,跟你前端页面输入的提交到servlet的进行比较。这样就能实现验证码的功能。
领取专属 10元无门槛券
手把手带您无忧上云