마우스를 클릭하고 누른 상태로 유지 (예 : 마우스 드래그) 할 때 상자가 빨간색으로 변하는 그리드가 있습니다. 아래 코드가 있습니다. 마우스를 끌 때. MouseDragged 메서드가 제대로 호출되지만 하나의 상자가 빨간색으로 변하고 이후에는 아무 것도 나타나지 않습니다 (메서드가 여전히 호출되었지만). 어떤 아이디어? 나는 분명했다.MouseListener MouseDragged 예상대로 작동하지 않습니다.
이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
흠. 유효한 지점입니다. 감사. 내가 어떻게 할 수 있는지에 대한 조언? 즉 마우스의 위치를 추적합니까? – Cemre
더 나은 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –