發新話題

[JAVA] 座標顯示與畫圖

[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);
            }
        }); //處理視窗關閉要求
    }
}

TOP

發新話題