當我離開單擊按住並移動光標(即:拖動鼠標)時,我有一個網格,其中框變爲紅色(我基本上想繪製網格)。我有下面的代碼。當我拖動鼠標時。 MouseDragged方法被正確調用,但是隻有一個框變爲紅色,並且在我之後拖動時(儘管該方法仍然被調用),沒有任何反應。有任何想法嗎 ?希望我清楚。由於MouseListener MouseDragged不按預期方式工作
public static class DragListener implements MouseMotionListener
{
@Override
public void mouseDragged(MouseEvent me) {
JPanel current =(JPanel)me.getSource();
current.setBackground(Color.RED);
}
}
這是網格的定義:
public static class GridPane extends JPanel {
public GridPane(int row, int col) {
int count = 0 ;
setLayout(new GridLayout(row, col));
setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
for (int i = 1; i <= (row * col); i++) {
JPanel lab = new JPanel();
lab.setEnabled(true);
lab.setBackground(Color.WHITE);
lab.setPreferredSize(new Dimension(3, 3));
lab.setBorder(BorderFactory.createLineBorder(Color.BLACK));
lab.addMouseMotionListener(new DragListener());
lab.addMouseListener(new ClickListener());
lab.setName(count+"");
++count;
add(lab);
}
}
}
你只需要跟蹤的位置,然後設置在鼠標上紅色網格框。我猜測它只是在你點擊鼠標時獲取初始鼠標位置,而不是按住鼠標左鍵時更新的鼠標位置。 – theDazzler 2012-01-28 02:13:30
嗯,這是一個有效的點。謝謝。關於如何才能做到這一點的任何提示?即跟蹤鼠標的位置? – Cemre 2012-01-28 02:15:38
爲了儘快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。 – 2012-01-28 02:16:57