我想寫一個Java應用程序,我可以在圖像上繪製矩形(JLabel)。問題是矩形看起來不應該在它應該在的地方。它開始於屏幕,而不是與圖像組件的左上角..矩形出現不應該在它應該
我得到的x和像這樣的出發點y座標:
public void mouseClicked(MouseEvent e) {
System.out.println("X:"+e.getX()+"Y:"+e.getY());
}
當鼠標拖動我得到結束x,y和調用repaint:
public void mouseDragged(MouseEvent e) {
if(e.getSource().equals(label)) {
System.out.println("X:"+e.getX()+"Y:"+e.getY());
endX = e.getX();
endY = e.getY();
repaint();
}
}
那麼如何使它相對於標籤獲得X和Y?而不是窗戶?我想讓0,0成爲標籤的開始。
鼠標偵聽被添加到標籤:
label.addMouseListener(this);
label.addMouseMotionListener(this);
標籤被添加到佈局porpuse的面板。
更新:我試着printint座標。看起來他們沒事。但矩形仍然不在我想要的位置。我懷疑它被繪製在JFrame上。 如何在標籤上塗上東西?
已賣出:問題是我從未想過的地方。我剛剛從我的標籤上拿到了一個圖形對象,並隨它一起繪製。
爲了更快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。當然,一種方法可能是將偵聽器添加到標籤,而不是父組件。 –