这是我的代码
//Sina.java
import javax.swing.*;
import java.awt.*;
public class Sina extends JPanel implements Runnable
{
double end_x=0.0;
double end_y=0.0;
double start_x=0.0;
double start_y=0.0;
Thread one;
public Sina()
{
one=new Thread(this);
one.start();
}
public void run()
{
while(true)
{
start_x=end_x;
start_y=end_y;
end_x+=0.01;
double end_y=Math.sin(end_x);
repaint();
}
}
public void paint(Graphics g)
{
g.setColor(Color.black);
g.drawLine((int)start_x*100,(int)start_y*100,(int)end_x*100,(int)end_y*100);
}
public static void main(String args[])
{
JFrame jf=new JFrame();
jf.getContentPane().add(new Sina());
jf.setSize(300,300);
jf.setVisible(true);
}
}
我看过帮助文档,说 repaint()方法只有在系统当前任务结束时才用,我不用线程,的确能够画出两条线(这一点我实现了)但是我要如何才能得画出正弦线,请高后指点一二/如能解决,高分谢,,
//Sina.java
import javax.swing.*;
import java.awt.*;
public class Sina extends JPanel implements Runnable
{
double end_x=0.0;
double end_y=0.0;
double start_x=0.0;
double start_y=0.0;
Thread one;
public Sina()
{
one=new Thread(this);
one.start();
}
public void run()
{
while(true)
{
start_x=end_x;
start_y=end_y;
end_x+=0.01;
double end_y=Math.sin(end_x);
repaint();
}
}
public void paint(Graphics g)
{
g.setColor(Color.black);
g.drawLine((int)start_x*100,(int)start_y*100,(int)end_x*100,(int)end_y*100);
}
public static void main(String args[])
{
JFrame jf=new JFrame();
jf.getContentPane().add(new Sina());
jf.setSize(300,300);
jf.setVisible(true);
}
}
我看过帮助文档,说 repaint()方法只有在系统当前任务结束时才用,我不用线程,的确能够画出两条线(这一点我实现了)但是我要如何才能得画出正弦线,请高后指点一二/如能解决,高分谢,,
import java.awt.*;
public class Sina extends JPanel implements Runnable
{
double end_x=2.0;
double end_y=2.0;
double start_x=2.0;
double start_y=2.0;
int x=100;
Thread one;
public Sina()
{
one=new Thread(this);
one.start();
}
public void run()
{
while(true)
{
start_x=end_x;
start_y=end_y;
end_x+=0.01;
double end_y=Math.sin(end_x);
repaint(); }
}
public void paint(Graphics g)
{
g.setColor(Color.red);
// g.drawLine((int)start_x*10,(int)start_y*10,(int)end_x*10,(int)end_y*10);
x++;
g.drawLine(10,10,100,x);
}
public static void main(String args[])
{
JFrame jf=new JFrame();
jf.getContentPane().add(new Sina());
jf.setSize(500,500);
jf.setVisible(true);
}
}