1樓
大 中
小 發表於 2006-8-7 20:43
[JAVA] 座標顯示與畫圖
引用:/*****************************************
說明:請設計一程式,當滑鼠進入Jframe視窗時,
顯示滑鼠座標值,當拖曳滑鼠時,則顯示鼠座標
值與拖曳路徑(一直線).
*************************************************/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
//想想還有沒有其他的東西要import
import javax.swing.event.*; //要多import這個
public class f6 extends JFrame implements MouseInputListener//名稱改一改
{
Container c;
//設定UI元件
JLabel lab_x,lab_y;
//設定共用的變數與類別
int x1,y1,x2,y2;
public f6() //建構元,名稱改一改
{
super("座標顯示與畫圖");
c=getContentPane();//取得ContentPane
//設定版面設定
c.setLayout(new FlowLayout(FlowLayout.CENTER));//設定為用flowlayout
//初始化UI元件
lab_x=new JLabel("X:0");
lab_y=new JLabel("Y:0");
x1=-1;//設定成不可能畫圖
y1=-1;
x2=-1;
y2=-1;
//將UI元件加入ContentPane
c.add(lab_x);
c.add(lab_y);
//設定UI元件與滑鼠的事件觸發傾聽者
addMouseListener(this);
addMouseMotionListener(this);
setSize(640,480);//設定size,顯示出去
show();
}
public void paint(Graphics g)
{
super.paint(g);//畫出元件
//額外的畫圖程式寫在這裡
if (x1>=0)//如果可以畫圖就畫
g.drawLine(x1,y1,x2,y2);
}
//UI元件事件處理類別寫在這裡
//滑鼠事件處理類別寫在這裡
/*****實作滑鼠移動事件處理物件 *******/
/*****實作滑鼠移動事件處理方法 *******/
public void mouseClicked(MouseEvent e){};
public void mouseEntered(MouseEvent e){};
public void mouseExited(MouseEvent e){};
public void mousePressed(MouseEvent e)
{
x1=e.getX();
y1=e.getY();
x2=x1;
y2=y1;//重新設定
repaint();
}
public void mouseReleased(MouseEvent e){};
public void mouseMoved(MouseEvent e)
{
//取得X Y座標
lab_x.setText("X:"+e.getX());
lab_y.setText("Y:"+e.getY());
repaint();
}
public void mouseDragged(MouseEvent e)
{
lab_x.setText("X:"+e.getX());
lab_y.setText("Y:"+e.getY());
x2=e.getX();
y2=e.getY();
repaint();
}
/***主程式***/
public static void main(String args[]) //程式起點
{
f6 app=new f6(); //名稱改一改,啟動UI元件
app.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}); //處理視窗關閉要求
}
}
|