最近由于项目的需要,要求利用JAVA的AWT或者SWING组件,开发APPLET程序,用网页的形式显示出来。但是,现成的波形显示控件并没有,需要自己开发。目前,遇到的困难是怎样编写显示坐标和波形图的代码,请各位大虾指点一二!最好能给出源码!万分感谢!!!
由于小女子能力有限,请大家多多帮忙!!这厢有礼了!
由于小女子能力有限,请大家多多帮忙!!这厢有礼了!
解决方案 »
- GUI基础问题····
- 为什么说“内存中一共有2万多个”对象
- 一个Java工程,其中两个类需要让别人改,其他的类不希望别人看到,请问有什么好方法?
- 怎么创建游戏房间?????????????????????
- Java2D源码解析
- JAVA中调用操作系统的命令的函数是很么?
- 我第一次用Jbuilder8,有一些问题想请教各位.
- 准备学Java:菜鸟问题,http://java.sun.com/j2se/1.4.1/download.html页上所说Jre和JDK有什么区别到底要下载哪个?
- 事件处理的问题
- 请问大侠们!有没有地方去下载java虚拟机!!
- 类名.class和实例.getClass()的区别
- 判断一个数是不是质数 - 用递归实现
楼主【yanglei02152003】截止到2008-07-17 10:10:15的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:20 每贴平均分数:20
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:1 结贴的总分数:20
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
折线的话比较简单,使用GeneralPath对象连接数据点就行.
如果是曲线的话,使用QuadCurve2D对象根据你实际的要求,操作回绕或点即可.
你只需要学习GUI组件绘制的基本知识,Graphics类以及java.awt.geom开发包里的内容就可以完成你的需求。
//绘图
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;class SineDraw extends JPanel
{
private static final int SCALEFACTOR=200;
private int cycles;
private int points;
private double sines[];
private int pts[];
public SineDraw(){setCycles(5);}
public void setCycles(int newCycles)
{
cycles=newCycles;
points=SCALEFACTOR*cycles*2;
sines=new double[points];
for(int i=0;i<points;i++)
{
double radians=(Math.PI/SCALEFACTOR)*i;
sines[i]=Math.sin(radians);
}
repaint();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
int maxWidth=getWidth();
double hstep=(double)maxWidth/(double)points;
int maxHeight=getHeight();
pts=new int[points];
for(int i=0;i<points;i++)
pts[i]=(int)(sines[i]+maxHeight/2*0.95+maxHeight/2);
g.setColor(Color.RED);
for(int i=1;i<points;i++)
{
int x1=(int)((i-1)*hstep);
int x2=(int)(i*hstep);
int y1=pts[i-1];
int y2=pts[i];
g.drawLine(x1,y1,x2,y2);
}
}
}
public class SineWave extends JApplet
{
private SineDraw sines=new SineDraw();
private JSlider adjustCycles=new JSlider(1,30,5);
public void init()
{
Container cp=getContentPane();
cp.add(sines);
adjustCycles.addChangeListener(new ChangeListener()
{
public void stateChanged(ChangeEvent e)
{
sines.setCycles(((JSlider)e.getSource()).getValue());
}
});
cp.add(BorderLayout.SOUTH,adjustCycles);
}
public static void main(String args[])
{
new SineWave();
}
}其它的波形大同小异,查一下波形函数即可,自己看下吧
http://i.cn.yahoo.com/pzy123cn/blog/p_17/
这个算法我还没有想出来,请各位大虾出谋划策,帮忙给个建议!
谢谢了!
遇到大数据问题就JAVA的画图就会死掉,楼主有什么好的解决办法没有