用java做的滚动的正弦曲线
2008-02-23 09:25:05来源:互联网 阅读 ()
//Windows API写过滚动正弦曲线,感觉用Java做起来代码会比较小,试了一下,但感觉界面不如windows好.
import java.awt.*;
import java.awt.event.*;
import javax.Swing.*;
import javax.swing.Timer;
public class SinWave extends JFrame{
private static final int NUM = 1000;
private static final double TWOPI = 2 * 3.14;
private static final int STEP = 10;
private int []xPoints = new int[NUM];
private int []yPoints = new int[NUM];
private int []yCopyPoints = new int[STEP];
private int width,height;
private Timer timer;
public SinWave()
{
setSize(500,400);
this.setBackground(Color.white);
Dimension scrSize=Toolkit.getDefaultToolkit().getScreenSize();
width = getWidth();
height = getHeight();
this.setLocation((scrSize.width-width)/2,(scrSize.height-height)/2);
for(int i = 0; i < NUM; i )
{
xPoints[i] = i * width / NUM;
yPoints[i] = (int)(height/2*(1-Math.sin(TWOPI * i / NUM)));
}
setVisible(true);
timer = new Timer(200,new ActionListener(){
public void actionPerformed(ActionEvent e)
{
for(int i = 0; i < STEP; i )
yCopyPoints[i] = yPoints[i];
for(int i = 0; i < NUM-STEP; i )
yPoints[i] = yPoints[i STEP];
for(int i = 0; i < STEP; i )
yPoints[i NUM-STEP] = yCopyPoints[i];
repaint();
}
});
addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent ce) {
width = getWidth();
height = getHeight();
for(int i = 0; i < NUM; i )
{
xPoints[i] = i * width / NUM;
yPoints[i] = (int)(height/2*(1-Math.sin(TWOPI * i / NUM)));
}
}
});
timer.start();
}
public void paint(Graphics g)
{
super.paint(g);
g.setColor(Color.red);
g.drawLine(0,height/2,width,height/2);
g.setColor(Color.green);
g.drawPolyline(xPoints,yPoints,NUM);
}
public static void main(String []args)
{
SinWave sw= new SinWave();
sw.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
上一篇: 电信网管中的Java客户端(三)
下一篇: 电信网管中的Java客户端系列(四)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash