畫 Sin()函式影象
阿新 • • 發佈:2019-02-03
主題:畫sin(x)函式影象
java 程式碼如下:
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class DrawSin extends JFrame implements ActionListener{
JButton draw = new JButton("畫圖");
JButton clear = new JButton("清除畫圖");
JTextField w = new JTextField(20);
public DrawSin(){
setTitle("sin()函式");//設定標題
setLayout(new FlowLayout());//設定為流佈局
// setLayout(new CardLayout());
// draw.setLocation(40, 40);
//新增元件
add(draw);
add(clear);
add(w);
//新增監聽事件
draw.addActionListener(this);
clear.addActionListener(this);
setSize(600,600);//設定視窗大小
setLocationRelativeTo(null);//設定視窗居中顯示
setVisible(true);//設定視窗顯示
setDefaultCloseOperation(EXIT_ON_CLOSE);//設定關閉按鈕響應方式
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if( e.getSource() == draw ){//畫圖
int text = Integer.parseInt(w.getText());//獲取文字框中的數字字元
Graphics g = getGraphics();
for( int i=0; i<1000; i++ ){
int x1 = i;
int x2 = i+1;
int y1 = (int) (Math.sin( text*x1*Math.PI/180) * 100 +200 );//sin()函式
int y2 = (int) (Math.sin( text*x2*Math.PI/180) * 100 +200 );//sin()函式
// g.drawString("*", x1, y1);//畫圖
g.drawLine(x1, y1, x2, y2);//畫線
}
}
if( e.getSource() == clear){//重畫
repaint();
}
}
public static void main(String args[]){
new DrawSin();
}
}
執行結果: