最近由于项目的需要,要求利用JAVA的AWT或者SWING组件,开发APPLET程序,用网页的形式显示出来。但是,现成的波形显示控件并没有,需要自己开发。目前,遇到的困难是怎样编写显示坐标和波形图的代码,请各位大虾指点一二!最好能给出源码!万分感谢!!!
    由于小女子能力有限,请大家多多帮忙!!这厢有礼了!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【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  %                  
    敬礼!
      

  2.   

    你指的波形图是的表现方式是怎样的?折线还是曲线?
    折线的话比较简单,使用GeneralPath对象连接数据点就行.
    如果是曲线的话,使用QuadCurve2D对象根据你实际的要求,操作回绕或点即可.
      

  3.   

    你如果需要自己实现的话,那么Java 2D API提供了非常强大的支持。
    你只需要学习GUI组件绘制的基本知识,Graphics类以及java.awt.geom开发包里的内容就可以完成你的需求。
      

  4.   

    //这是一个Applet程序,画一个正弦曲线并用JSlider控制它的振幅:
    //绘图
    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();
    }
    }其它的波形大同小异,查一下波形函数即可,自己看下吧
      

  5.   

    图表我经常做,是基于web,但是不会用swing,帮不了你
      

  6.   

    老板厚道,thinking in java
      

  7.   

    这个是我以前的一个作业,可能对你有用
    http://i.cn.yahoo.com/pzy123cn/blog/p_17/
      

  8.   

    偶现在已经用Graphics类画出了坐标,因为要根据多个点描绘图形,界面有限不能显示那么多的点.需要采用一种算法抽样画点.
    这个算法我还没有想出来,请各位大虾出谋划策,帮忙给个建议!
    谢谢了!
      

  9.   

    最近在做波形图,真的很头大,是接收串口数据然后显示波形图,
    遇到大数据问题就JAVA的画图就会死掉,楼主有什么好的解决办法没有