У меня есть сетка, в которой прямоугольники становятся красными (я в основном хочу нарисовать сетку), когда я щелкаю левой кнопкой мыши, удерживаю и перемещаю курсор на них (т.е. перетаскиваю мышь). У меня есть код ниже. Когда я делаю перетаскивание мышью. Метод 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);
}
}
}