求大神,用JAVA绘制正弦函数波形,向x轴右侧不断移动 求源程序,实在不会啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.awt.BorderLayout;import java.awt.Canvas;import java.awt.EventQueue;import java.awt.Graphics;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;/** * 绘制一条移动的正弦曲线 * @author zys59三仙半(QQ:597882752)<br> * 创建时间:2015年9月18日 下午5:05:49 */public class DrawSinFrame extends JFrame { private static final long serialVersionUID = 5963639555566134678L; private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { DrawSinFrame frame = new DrawSinFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public DrawSinFrame() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 500, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); MySinCanvas canvas = new MySinCanvas(); add(canvas); }}class MySinCanvas extends Canvas implements Runnable { private static final long serialVersionUID = -2108382100904246362L; //相位 private int angle = 0; //移动速度和方向,正值左移,负值右移 private int v = -5; public MySinCanvas() { setSize(420, 120); new Thread(this).start();; } @Override public void paint(Graphics g) { super.paint(g); for (int i = 0; i < 420; i++) { g.drawLine(i, (int) (120 - 120 * Math.sin((angle + i) * Math.PI / 180)), i + 1, (int) (120 - 120 * Math.sin((angle + i + 1) * Math.PI / 180))); } } @Override public void run() { while (true) { angle += v; repaint(); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }} junit中私有方法是否需要测试? LinkedList中泛型的一点小疑惑 java中开了多线程,一个线程出错了,如何通知其他线程并且关闭其他线程 请教 获取图形属性问题 java包的学习 ANT1.6莫名奇妙安装失败,请指教! 请牛人帮帮忙 有机用,谢谢 急! 如何将一个字符串,用指定的分隔符,转换成字符串数组,马上给分!!! 在一张网页上可不可以同时显示中文和日文啊? 请谈一下你对OOP的认识! java初级狗!求问个简单的问题~ 求大神,用JAVA编计算器,可以优先级混合运算
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.EventQueue;
import java.awt.Graphics;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;/**
* 绘制一条移动的正弦曲线
* @author zys59三仙半(QQ:597882752)<br>
* 创建时间:2015年9月18日 下午5:05:49
*/
public class DrawSinFrame extends JFrame {
private static final long serialVersionUID = 5963639555566134678L; private JPanel contentPane; /**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DrawSinFrame frame = new DrawSinFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} /**
* Create the frame.
*/
public DrawSinFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 500, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
MySinCanvas canvas = new MySinCanvas();
add(canvas);
}}class MySinCanvas extends Canvas implements Runnable {
private static final long serialVersionUID = -2108382100904246362L;
//相位
private int angle = 0;
//移动速度和方向,正值左移,负值右移
private int v = -5; public MySinCanvas() {
setSize(420, 120);
new Thread(this).start();;
} @Override
public void paint(Graphics g) {
super.paint(g);
for (int i = 0; i < 420; i++) {
g.drawLine(i, (int) (120 - 120 * Math.sin((angle + i) * Math.PI
/ 180)), i + 1, (int) (120 - 120 * Math.sin((angle + i + 1)
* Math.PI / 180)));
}
} @Override
public void run() {
while (true) {
angle += v;
repaint();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}