java swing模仿随机频谱
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.util.Random; import javax.swing.JFrame; import javax.swing.JPanel; public class Main extends JFrame { public static void main(String[] args) { new Main(); } WavePanel panel = new WavePanel(); public Main() { setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(new BorderLayout()); add(panel); pack(); setLocationRelativeTo(null); setVisible(true); new Thread(new Runnable() { public void run() { try { while (true) { Thread.sleep(100); panel.repaint(); } } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); } class WavePanel extends JPanel { final int bufWidth = 400, bufHeight = 200; final int len = 100; final int lifeLine = (int) (bufWidth * 0.75); final int midHeight = bufHeight >> 1; final int perw = lifeLine / len; final BufferedImage buf = new BufferedImage(bufWidth, bufHeight, BufferedImage.TYPE_INT_ARGB); final int a[] = new int[len]; final Random random = new Random(); public int ai = 0; public WavePanel() { setPreferredSize(new Dimension(bufWidth, bufHeight)); } @Override protected void paintComponent(Graphics g) { ai = (ai + 1) % len; a[ai] = random.nextInt(100); Graphics gg = buf.getGraphics(); gg.clearRect(0, 0, buf.getWidth(), buf.getHeight()); gg.setColor(Color.RED); for (int i = 0; i < len; i++) { int j = (ai - i + len) % len; int leftSpace = perw / 3; int x = lifeLine - i * perw; int y = midHeight - (a[j] >> 1); int w = (int) (0.6 * perw), h = a[j]; gg.fillRect(x - leftSpace, y, w, h); } gg.setColor(Color.CYAN); gg.drawLine(lifeLine, 0, lifeLine, bufHeight - 1); g.drawImage(buf, 0, 0, null); } } }
java swing模仿随机频谱的更多相关文章
- java实现 swing模仿金山打字 案例源码
java实现 swing模仿金山打字 案例源码,更多Java技术就去Java教程网.http://java.662p.com 代码: <font size="3">im ...
- 【小型系统】抽奖系统-使用Java Swing完成
一.需求分析 1. 显示候选人照片和姓名. 2. 可以使用多种模式进行抽奖,包括一人单独抽奖.两人同时抽奖.三人同时抽奖. 3. 一个人可以在不同的批次的抽奖中获取一.二.三等奖,但是不能在同一批次抽 ...
- Java Swing实现一个简单而优美的记事本( 较详细注释 )
Java Swing实现具有基本功能的记事本 目前实现了: 文件 新建 打开 保存 退出前保存询问 编辑 剪切 复制 粘贴 清除 撤销 格式 字体选择 字体颜色选择 帮助 关于 (样式采用了css与h ...
- Java Swing interview
http://www.careerride.com/Swing-AWT-Interview-Questions.aspx Swing interview questions and answers ...
- Java Swing 第03记 布局管理器
几种Swing常用的布局管理器 BorderLaout 它将容器分为5个部分,即东.南.西.北.中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的 ...
- Java Swing 第01记 Hello Word
首先来一个Java Swing的HelloWord程序. package cn.java.swing.chapter03; import javax.swing.JButton; import jav ...
- Java swing项目-图书管理系统(swing+mysql+jdbc) 总结
(一)java Swing的学习. (1)学习如何安装windowbuilder插件的安装. <1>在eclipse中点击help <2>在help的下拉选中选择install ...
- Java Swing快速构建窗体应用程序
以前接触java感觉其在桌面开发上,总是不太方便,没有一个好的拖拽界面布局工具,可以快速构建窗体. 最近学习了一下NetBeans IDE 8.1,感觉其窗体设计工具还是很不错的 , 就尝试一下做了一 ...
- paip.web数据绑定 下拉框的api设计 选择框 uapi python .net java swing jsf总结
paip.web数据绑定 下拉框的api设计 选择框 uapi python .net java swing jsf总结 ====总结: 数据绑定下拉框,Uapi 1.最好的是默认绑定..Map(k ...
随机推荐
- js有关时间日期的操作
var myDate = new Date();var date_string = myDate.getFullYear()+""+((myDate.getMonth()+1)&l ...
- 又是一周-AJAX(三)
hi 我又食言了,但我还是厚颜无耻的回来了... 1.AJAX(三) 三.AJAX的简单的例子 3.1 简介 完成:查询员工信息,通过输入员工编号查询员工的基本信息+新建员工的信息,包含员工姓名,编号 ...
- (一)观察者模式-C++实现
观察者模式: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都得到通知并被自动更新. 它有四种角色: 主题(Subject):一个接口,规定了具体主题需要实现的方法. ...
- NOIP2014飞扬的小鸟[DP][WRONG]
坑人啊朴素的dp 75分 用了完全背包才是80分,结果普遍偏小 为什么啊啊啊啊啊 等以后再写一遍吧 #include<iostream> #include<cstdio> #i ...
- wamp5设置外网访问方法
1.安装完Wamp5之后,从外网访问网页时存在无法访问问题. 2.phpmyadmin外网没法访问 1.解决办法: 打开wamp的托盘图标(右下角),找到"Config files" ...
- java 22 - 14 JDK1.5以后的Lock锁
在之前解决线程安全的过程中,虽然我们可以理解同步代码块和同步方法的锁对象问题, 但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁, 为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对 ...
- Android应用性能测试
Android应用性能测试 Android用户也许会经常碰到以下的问题: 1)应用后台开着,手机很快没电了——应用耗电大 2)首次/非首次启动应用,进入应用特别慢——应用启动慢 3)应用使用过程中,越 ...
- css3属性选择器
- Centos6 修改max user processes limits
ulimit:显示(或设置)用户可以使用的资源的限制(limit),这限制分为软限制(当前限制)和硬限制(上限),其中硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何 ...
- repeater 根据输入 返回汉字
page repeater <asp:Repeater ID="r_scoreCount" runat="server"> <HeaderTe ...