2011-01-10 76 views
0

我有以下代碼爲什麼指針x和y的位置永遠不會低於4和23?

import javax.swing.*; 


import java.awt.event.*; 

public class MousePos implements MouseMotionListener{ 

    JLabel x = new JLabel(); 
    JLabel y = new JLabel(); 

    public static void main(String[] args) { 
     MousePos mp =new MousePos(); 
     mp.go(); 
    } 

    public void go() { 
     JFrame frame = new JFrame("Mouse Position"); 

     frame.addMouseMotionListener(this); 

     JPanel p =new JPanel(); 
     p.add(x); 
     p.add(y); 

     frame.getContentPane().add(p); 
     frame.setSize(150,150); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
    } 

    @Override 
    public void mouseDragged(MouseEvent e) { 


    } 

    @Override 
    public void mouseMoved(MouseEvent e) { 
     x.setText("X : " + e.getX()); 
     y.setText("Y : " +e.getY()); 

    } 

} 

其創建與保持的x位置和表格上的鼠標指針的y位置兩個標籤的幀。
我學到的是x值,y值在0左上角爲0和0
問題是x的值永遠不會低於4,y的值不會低於23。
誰能告訴我爲什麼。
在此先感謝。

回答

3
frame.addMouseMotionListener(this); 

的座標是相對於框架而不是內容窗格中。 4是框架邊框的寬度,23是邊框加框架「標題區域」的高度。

試試這個:

p.addMouseMotionListener(this); 

如果您正在收聽的意向,請注意幀的鼠標事件,該幀不幸的是,如果該按鈕是在邊境或不會觸發事件標題區...這就是爲什麼你不觀察(0,0),如果你指向幀的左上角。