总结:只是意外的收获吧。之前一篇是老师教的,一个点,从底层开始升起,到鼠标按下的地方开始画圈圈,

现在改变了一下,因为点上升的一个循环和画圈的循环是分开的

现在让点点自己跑,并且边跑边画圈。而且在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动态画圈圈。运用多线程,绘图相关推荐

  1. 用easyx画电子钟_基于EasyX图形库的多线程绘图应用

    本文<基于EasyX图形库的多线程绘图应用>由手机部落整理,仅供参考.如果觉得很不错,欢迎点评和分享-感谢你的阅读与支持! 张煜昕 摘要:EasyX 是C++语言进行图形化编程和游戏编程的 ...

  2. java画虚线_java cansvas 画虚线要怎么设置?

    展开全部 java cansvas 画虚线通过Graphics2D setStroke(BasicStroke) 设置笔画虚线模式.32313133353236313431303231363533e5 ...

  3. java画板中画直线_java实现画图板上画一条直线

    目标:在画图板上画一条直线,供大家参考,具体内容如下 一.首先需要建立一个界面 过程:1.创建界面对象(Java语言中已经有,可直接创建对象来使用). 2.对于一个界面,我们需要设置它的大小.居中.界 ...

  4. java画虚线_java能画虚线吗

    展开全部 java swing中是可以绘制虚线的,主要是使用paint画笔工具绘制,如下32313133353236313431303231363533e58685e5aeb9313333376234 ...

  5. 2021-06-22Python 画樱花(动态画+飘落效果+暗色效)

    转载于https://blog.csdn.net/weixin_44259720/article/details/103697996?utm_medium=distribute.pc_feed_v2. ...

  6. Python 画樱花(动态画+飘落效果+暗色效)

    link # coding=utf-8 # 画一棵樱花import turtle import random from turtle import * from time import sleep# ...

  7. java绘画图形_java – 动态图形对象绘画

    试图找出最好的方法来做到这一点(并且没有跨越任何具体细节,不是我不知道的). 我正在以可视方式显示图形(各种节点,边缘连接它们),圆圈和线条代表这样.每个节点都将在运行时添加,我无法对其进行硬编码.根 ...

  8. sql java 创建数据库_java动态创建数据库(sql server)

    public static void main(String[] args) { // TODO Auto-generated method stub String url = "jdbc: ...

  9. java jfreechart 画图_java – Jfreechart XYPlot,我如何将绘图绘制到绘图区?

    我在我的应用程序中使用XY-Plots绘制了几个图表. 我没有问题在(或在顶部,左侧或右侧)显示图例 剧情. 但为了节省空间,我想在XY-Plot中绘制一个图例框. 我能够在图中绘制图像,文本和线条注 ...

最新文章

  1. 常见的水平居中布局方式
  2. 《代码本色》作者Daniel Shiffman:艺术家也编程
  3. 项目管理13禁忌[转]
  4. matplotlib 的一些知识
  5. html个人主页_前端性能优化实践 之 百度App个人主页优化
  6. 《天天数学》连载11:一月十一日
  7. python3怎么使用mnist_loader_Python读取mnist
  8. sydney airport hotel recommendations
  9. CISCO路由器的备份与还原(1)
  10. Python数值特征转换
  11. php查询近期数据,thinkphp中如何查询当天,本周的,本月的,本年的数据
  12. Git 打标签(分布式版本控制系统)
  13. 【Web】关于Session过期/失效的理解
  14. css 日语字体,css字体
  15. Java项目:SSM高校教职工差旅报销管理系统
  16. JavaScript判断数组中是否有重复元素方法
  17. 电脑宝马,大量宝马车电脑通病故障检修方法
  18. GestureDetector--手势识别初体验(一)
  19. 单臂路由与三层交换技术
  20. 小伙用Python 分析了 20 万场吃鸡数据

热门文章

  1. python读取pdf表格数据代码_Python新工具:用三行代码提取PDF表格数据
  2. python画图y轴在右侧_Matplotlib:图形左边缘和Y轴之间的固定间距
  3. 仓库保管工计算机试题,仓库保管工中级试卷答案.doc
  4. java 中的 什么意思啊_JAVA 中的 - 是什么意思?
  5. 压缩包安装_SPSS 21 下载(内附压缩包及安装过程)
  6. 如何进行cad地理配准_【教程】自带高度建筑轮廓如何制作分色图
  7. linux bitcoind环境搭建,bitcoin_book_2nd
  8. mysql orderitems_【Mysql】教程全解(三)ORDER BY 排序
  9. java获取数组穷举_被BAT疯抢的Java工程师,都是怎么拿到年薪50W的offer
  10. Activity中四大启动模式