📄 canvastest.java
字号:
//CanvasTest.java
import java.awt.*;
import javax.swing.*;
//派生出自己的画布类
class MyCanvas extends Canvas {
final static int SCALE_H = 100; //高度缩放比例
final static float SCALE_W = 1.0f; //水平缩放(以360pix为基数)
public MyCanvas() {}
//重写该方法
public void paint(Graphics g) {
int sX,sY,cX,cY; //分别表示源坐标和当前坐标
super.paint(g);
sX = 10; //初始为源点(向右平移10pix)
sY = (int)(SCALE_H + 5); //Y坐标在画布中央
for (int i = 10; i <= 360; i += 10) { //画一个周期,每10度画线
cX = (int)(i*SCALE_W + 10); //当前X坐标
cY = (int)(-SCALE_H * Math.sin(i*Math.PI /180) + SCALE_H + 5); //当前Y坐标
g.drawLine(sX,sY,cX,cY); //从源点画直线到当前点
//重置源点
sX = cX;
sY = cY;
}
}
}
public class CanvasTest extends JFrame {
public CanvasTest() {
super("Canvas Test");
MyCanvas mc = new MyCanvas();
this.getContentPane().add(mc,BorderLayout.CENTER); //将画布加到中央
}
public static void main(String[]args) {
CanvasTest ct = new CanvasTest();
ct.setSize(400,240);
ct.setDefaultCloseOperation(EXIT_ON_CLOSE);
ct.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -