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模仿随机频谱的更多相关文章

  1. java实现 swing模仿金山打字 案例源码

    java实现 swing模仿金山打字 案例源码,更多Java技术就去Java教程网.http://java.662p.com 代码: <font size="3">im ...

  2. 【小型系统】抽奖系统-使用Java Swing完成

    一.需求分析 1. 显示候选人照片和姓名. 2. 可以使用多种模式进行抽奖,包括一人单独抽奖.两人同时抽奖.三人同时抽奖. 3. 一个人可以在不同的批次的抽奖中获取一.二.三等奖,但是不能在同一批次抽 ...

  3. Java Swing实现一个简单而优美的记事本( 较详细注释 )

    Java Swing实现具有基本功能的记事本 目前实现了: 文件 新建 打开 保存 退出前保存询问 编辑 剪切 复制 粘贴 清除 撤销 格式 字体选择 字体颜色选择 帮助 关于 (样式采用了css与h ...

  4. Java Swing interview

    http://www.careerride.com/Swing-AWT-Interview-Questions.aspx   Swing interview questions and answers ...

  5. Java Swing 第03记 布局管理器

    几种Swing常用的布局管理器 BorderLaout 它将容器分为5个部分,即东.南.西.北.中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的 ...

  6. Java Swing 第01记 Hello Word

    首先来一个Java Swing的HelloWord程序. package cn.java.swing.chapter03; import javax.swing.JButton; import jav ...

  7. Java swing项目-图书管理系统(swing+mysql+jdbc) 总结

    (一)java Swing的学习. (1)学习如何安装windowbuilder插件的安装. <1>在eclipse中点击help <2>在help的下拉选中选择install ...

  8. Java Swing快速构建窗体应用程序

    以前接触java感觉其在桌面开发上,总是不太方便,没有一个好的拖拽界面布局工具,可以快速构建窗体. 最近学习了一下NetBeans IDE 8.1,感觉其窗体设计工具还是很不错的 , 就尝试一下做了一 ...

  9. paip.web数据绑定 下拉框的api设计 选择框 uapi python .net java swing jsf总结

    paip.web数据绑定 下拉框的api设计 选择框 uapi  python .net java swing jsf总结 ====总结: 数据绑定下拉框,Uapi 1.最好的是默认绑定..Map(k ...

随机推荐

  1. Sqlserver2008R2 数据库镜像配置步骤

    Sqlserver2008镜像功能可以保障数据库的高可用性.数据库镜像维护着数据库的两个副本,这两个副本必须分别放置在不同的SQL Server数据库实例中.可以用两台服务器也可以用一台服务器的不同实 ...

  2. 汽车4S店经验指标完成情况报表制作分享

    集团公司一般为了加强下属的经营管理,以及项经营指标完情况,需要制定一些报表.我们平时也经常遇到这种情况,而这些报表要包括什么内容呢?该怎么制作呢?用什么制作呢?今天小编就以4s店为例,分享给大家一个报 ...

  3. 使用Openswan接入Windows Azure Site to Site VPN

    Winodows Azure的Site to Site VPN支持主流的防火墙和路由器等接入设备.具体型号和系列请参考下表: VENDOR DEVICE FAMILY MINIMUM OS VERSI ...

  4. Java JDBC高级特性

    1.JDBC批处理 实际开发中需要向数据库发送多条SQL语句,这时,如果逐条执行SQL语句,效率会很低,因此可以使用JDBC提供的批处理机制.Statement和PreparedStatemen都实现 ...

  5. 虚拟机安装的UBUNTU怎么全屏

    虚拟机下面安装了ubuntu系统,显示的屏幕只有那么一小块儿,不知道如何才能全屏,那么如何全屏呢?且看下面经验. 步骤阅读   百度经验:jingyan.baidu.com 方法/步骤 1 打开虚拟机 ...

  6. [No000036]操作系统Operating Systems系统调用的实现System_Call

    实现一个whoami 系统调用 系统调用的直观实现 问题+直观想法… 用户程序调用whoami, 一个字符串"systemcall "放在操作系统中(系统引导时载入) ,取出来打印 ...

  7. [No000013]在Office中关闭自动拼写检查和自动语法检查

    大家知道有时候语法检查很麻烦,搞得文档里都是红线和绿线.解决办法就是关闭自动拼写检查.现在我们来介绍怎么关闭office包括Word .Outlook .PowerPoint .OneNote .Pu ...

  8. noj[1581] 筷子

    题目描述 A先生有很多双筷子.确切的说应该是很多根,因为筷子的长度不一,很难判断出哪两根是一双的.这天,A先生家里来了K个客人,A先生留下他们吃晚饭.加上A先生,A夫人和他们的孩子小A,共K+3个人. ...

  9. css的小问题总结

    1.居中问题 比如让宽度为60%的<div class="box">居中,可以再.box里面设置margin:auto 2.高度固定的div里面有两个子类div且高度和 ...

  10. JS中new都是干了些什么事情

    var Person = function(name){ this.name = name; this.say = function(){ return "I am " + thi ...