java画圈_java动态画圈圈。运用多线程,绘图
总结:只是意外的收获吧。之前一篇是老师教的,一个点,从底层开始升起,到鼠标按下的地方开始画圈圈,
现在改变了一下,因为点上升的一个循环和画圈的循环是分开的
现在让点点自己跑,并且边跑边画圈。而且在for循环的最大值时终止“绽放”。很美
package com.aa;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
//实现一个礼花绽放的界面
import javax.swing.*;
public class Test6 {
public static void main(String[] args) {
JPanel jp = new JPanel();
JFrame f = new JFrame();
JLabel jl = new JLabel("周杰伦周杰伦周杰伦周杰伦周杰伦");
jl.setForeground(Color.red);// 字体设置红色
jl.setFont(new Font("", Font.ITALIC, 42));
JLabel jl2 = new JLabel("听妈妈的话");
jl2.setForeground(Color.green);
jl2.setFont(new Font("", Font.TRUETYPE_FONT, 33));
// f.setBackground(Color.black);//frame是块玻璃,不能直接添加背景颜色
f.setDefaultCloseOperation(3);
Panel p = new Panel();
p.add(jl);// 将label添加到panel里面
p.add(jl2);
p.setBackground(Color.black);// 这里还是改成
f.add(p);//
f.setVisible(true);
f.setBounds(100, 200, 500, 500);
}
}
class Panel extends JPanel implements Runnable, MouseListener, ActionListener {// 实现Runnable接口
int x, y;
public Panel() {
this.addMouseListener(this);
this.setBackground(Color.green);//
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
x = e.getX();
y = e.getY();
Thread t = new Thread(this);
t.start();
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void run() {
int xx = x;
int yy = y;
int max_y = 450;
while (yy < max_y) {
Graphics g = this.getGraphics();// 绘图的方法
g.setColor(Color.yellow);
g.fillOval(xx, max_y = max_y - 10, 10, 10);
// 这里睡眠是小点点上升的时间吗?
try {
Thread.currentThread().sleep(60);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
g.setColor(Color.black);
g.fillOval(xx, max_y, 10, 10);
// 把for循环放在while循环里了,所以点点跑哪里它就画哪里
Random r = new Random();
for (int i = 0; i < 30; i++) {
// g.setColor(Color.green);
g.setColor(new Color(r.nextInt(255), r.nextInt(255), r
.nextInt(255)));
g.drawOval(xx - i * 1, max_y - i * 1, i * 2, i * 2);
g.drawOval(xx - i * 2, max_y - 2 * i, i * 4, i * 4);
g.drawOval(xx - i * 3, max_y - i * 3, i * 6, i * 6);
try {
Thread.currentThread().sleep(60);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 这里涉及一个睡眠,这个睡眠是每一次画圈后的等待时间吗?,还是点击其他点点的间隔时间
g.setColor(Color.black);// 画笔的颜色
g.drawOval(xx - i * 1, max_y - i * 1, i * 2, i * 2);
g.drawOval(xx - i * 2, max_y - 2 * i, i * 4, i * 4);
g.drawOval(xx - i * 3, max_y - i * 3, i * 6, i * 6);
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
}
}
java画圈_java动态画圈圈。运用多线程,绘图相关推荐
- 用easyx画电子钟_基于EasyX图形库的多线程绘图应用
本文<基于EasyX图形库的多线程绘图应用>由手机部落整理,仅供参考.如果觉得很不错,欢迎点评和分享-感谢你的阅读与支持! 张煜昕 摘要:EasyX 是C++语言进行图形化编程和游戏编程的 ...
- java画虚线_java cansvas 画虚线要怎么设置?
展开全部 java cansvas 画虚线通过Graphics2D setStroke(BasicStroke) 设置笔画虚线模式.32313133353236313431303231363533e5 ...
- java画板中画直线_java实现画图板上画一条直线
目标:在画图板上画一条直线,供大家参考,具体内容如下 一.首先需要建立一个界面 过程:1.创建界面对象(Java语言中已经有,可直接创建对象来使用). 2.对于一个界面,我们需要设置它的大小.居中.界 ...
- java画虚线_java能画虚线吗
展开全部 java swing中是可以绘制虚线的,主要是使用paint画笔工具绘制,如下32313133353236313431303231363533e58685e5aeb9313333376234 ...
- 2021-06-22Python 画樱花(动态画+飘落效果+暗色效)
转载于https://blog.csdn.net/weixin_44259720/article/details/103697996?utm_medium=distribute.pc_feed_v2. ...
- Python 画樱花(动态画+飘落效果+暗色效)
link # coding=utf-8 # 画一棵樱花import turtle import random from turtle import * from time import sleep# ...
- java绘画图形_java – 动态图形对象绘画
试图找出最好的方法来做到这一点(并且没有跨越任何具体细节,不是我不知道的). 我正在以可视方式显示图形(各种节点,边缘连接它们),圆圈和线条代表这样.每个节点都将在运行时添加,我无法对其进行硬编码.根 ...
- sql java 创建数据库_java动态创建数据库(sql server)
public static void main(String[] args) { // TODO Auto-generated method stub String url = "jdbc: ...
- java jfreechart 画图_java – Jfreechart XYPlot,我如何将绘图绘制到绘图区?
我在我的应用程序中使用XY-Plots绘制了几个图表. 我没有问题在(或在顶部,左侧或右侧)显示图例 剧情. 但为了节省空间,我想在XY-Plot中绘制一个图例框. 我能够在图中绘制图像,文本和线条注 ...
最新文章
- 常见的水平居中布局方式
- 《代码本色》作者Daniel Shiffman:艺术家也编程
- 项目管理13禁忌[转]
- matplotlib 的一些知识
- html个人主页_前端性能优化实践 之 百度App个人主页优化
- 《天天数学》连载11:一月十一日
- python3怎么使用mnist_loader_Python读取mnist
- sydney airport hotel recommendations
- CISCO路由器的备份与还原(1)
- Python数值特征转换
- php查询近期数据,thinkphp中如何查询当天,本周的,本月的,本年的数据
- Git 打标签(分布式版本控制系统)
- 【Web】关于Session过期/失效的理解
- css 日语字体,css字体
- Java项目:SSM高校教职工差旅报销管理系统
- JavaScript判断数组中是否有重复元素方法
- 电脑宝马,大量宝马车电脑通病故障检修方法
- GestureDetector--手势识别初体验(一)
- 单臂路由与三层交换技术
- 小伙用Python 分析了 20 万场吃鸡数据
热门文章
- python读取pdf表格数据代码_Python新工具:用三行代码提取PDF表格数据
- python画图y轴在右侧_Matplotlib:图形左边缘和Y轴之间的固定间距
- 仓库保管工计算机试题,仓库保管工中级试卷答案.doc
- java 中的 什么意思啊_JAVA 中的 - 是什么意思?
- 压缩包安装_SPSS 21 下载(内附压缩包及安装过程)
- 如何进行cad地理配准_【教程】自带高度建筑轮廓如何制作分色图
- linux bitcoind环境搭建,bitcoin_book_2nd
- mysql orderitems_【Mysql】教程全解(三)ORDER BY 排序
- java获取数组穷举_被BAT疯抢的Java工程师,都是怎么拿到年薪50W的offer
- Activity中四大启动模式