2011年3月26日
<Java> JVA304-簡易繪圖板
/*
設計一個簡易繪圖板,畫布大小為400*200,並設定背景顏色為藍色
拖曳滑鼠時,產生繪圖效果,並顯示滑鼠座標
若按下"c"鍵,則設定畫筆為藍色,若按下其餘的按鍵,則設定畫筆為紅色
*/
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class JVA304 extends JFrame
{
int x, y, kcode;
private JLabel label;
public JVA304()
{
super("簡易繪圖板");
Container c = getContentPane();
c.setLayout(new FlowLayout());
label = new JLabel();
c.add(label);
addWindowListener(new MyListener());
/*
請在此處加上程式碼,您必須
1、啟動物件來處理滑鼠及按鍵事件
2、設定背景顏色
3、設定JFrame大小並顯示
*/
addMouseMotionListener(new MouseMotion());
addKeyListener(new KEvent());
setBackground(Color.blue);
setSize(400,200);
setVisible(true);
}
//處理程式關閉
class MyListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(1);
}
}
//滑鼠拖曳事件處理程式
class MouseMotion extends MouseMotionAdapter
{
/*
請在此處加上程式碼,您必須
1、顯示滑鼠座標
2、處理繪圖
*/
public void mouseMoved(MouseEvent e){
x = e.getX();
y = e.getY();
label.setText("滑鼠座標:(" + x + "," + y + ")" );
}
public void mouseDragged(MouseEvent e){
x = e.getX();
y = e.getY();
label.setText("滑鼠拖曳座標:(" + x + "," + y + ")" );
repaint();
}
}
//取得按鍵的字元
class KEvent extends KeyAdapter
{
/*
請在此處加上程式碼,您必須
1、取得按鍵值
*/
public void keyPressed(KeyEvent ke){
kcode = ke.getKeyCode();
}
}
//判斷按鍵是否為"c",若是則色筆為藍色,若否,則色筆為紅色,並繪製
public void paint(Graphics g)
{
/*
請在此處加上程式碼,您必須
1、判斷按鍵,並設定畫筆顏色
2、繪圖
*/
if(kcode == 67){
g.setColor(Color.blue);
g.fillOval(x,y,20,20);
}else{
g.setColor(Color.red);
g.fillOval(x,y,5,5);
}
label.repaint();
}
public static void main(String args[])
{
new JVA304();
}
}
相關物件說明:
Graphics
參考網站:
Java A+
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言