主要是练习界面设置 界面布局 添加组件 设置组件 接口
算出正弦曲线的横纵坐标然后一点一点连接 画出整个图形
package com.lovo.homework2;
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JLabel;
/**
* 类:界面上画出正玄曲线
* @author Abe
*
*/
@SuppressWarnings("serial")
public class SineCurve extends JFrame {
private double x;
private double y;
private double x1;
private double y1;
private int[] x2 = new int[1440];
private int[] y2 = new int[1440];
private JLabel[] lbl = new JLabel[5];
public SineCurve() {
this.setTitle("正玄曲线图");
this.setSize(600, 400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setLayout(null);
lbl[0] = new JLabel("-2π");
lbl[1] = new JLabel("0");
lbl[2] = new JLabel("2π");
lbl[3] = new JLabel("X");
lbl[4] = new JLabel("Y");
lbl[0].setBounds(100, 180, 50, 30);
lbl[1].setBounds(280, 180, 50, 20);
lbl[2].setBounds(457, 180, 50, 20);
lbl[3].setBounds(550, 150, 50, 20);
lbl[4].setBounds(300, 10, 50, 20);
for(int i = 0; i < lbl.length ; i++){
lbl[i].setFont(new Font("Consolas", Font.PLAIN, 25));
this.add(lbl[i]);
}
}
@Override
public void paint(Graphics g) {
super.paint(g);
for (double i = -720; i < 720; i++) {
x = i * Math.PI / 360;
x2[(int) (i + 720)] = (int) (x * 25 + 300);
y = Math.sin(x);
y2[(int) (i + 720)] = (int) (y * 110 + 200);
x1 = (i + 1) * Math.PI / 360;
y1 = Math.sin(x1);
g.drawLine((int) (x * 25 + 300), (int) (y * 70 + 200),
(int) (x1 * 25 + 300), (int) (y1 * 70 + 200));
}// 一点一点的画曲线
g.drawLine(300, 50, 300, 350);// Y轴
g.drawLine(300, 50, 280, 70);
g.drawLine(300, 50, 320, 70);
g.drawLine(50, 200, 550, 200);// X轴
g.drawLine(550, 200, 530, 220);
g.drawLine(550, 200, 530, 180);
g.drawPolyline(x2, y2, 1440);// 画曲线的工具?
}
public static void main(String[] args) {
new SineCurve().setVisible(true);
}
}