좋은 하루!누적 된 getClickCount()
한 번 클릭하면 주황색 버튼, 두 번 클릭하면 빨간색 버튼, 3이면 검정색 버튼이 표시됩니다. getClickCount() 값을 누적하는 방법과 관련하여 문제가 있습니다. 단추가 3 번의 클릭을 등록하려면 단추를 3 번 빨리 클릭해야합니다.
여기에 코드
button1.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent a){
if (a.getClickCount() == 1){
button1.setBackground(Color.ORANGE);
}
else if (a.getClickCount() == 2){
button1.setBackground(Color.RED);
}
else if (a.getClickCount() == 3){
button1.setBackground(Color.BLACK);
}
}
});
frame.setVisible(true);
frame.pack();
}
}
'MouseListener'는 버튼에 적합하지 않습니다. 문제를 나타내는 [실행 가능한 예제] (https://stackoverflow.com/help/mcve)를 제공하십시오. 이렇게하면 혼란이 줄어들고 응답이 향상됩니다. – MadProgrammer
방금 코드를 실행 했으므로 OK (좋지 않음)로 작동합니다. 그러나, 당신이해야 할 일은 모든 버튼 하나가 사용할 수있는 클래스 인'MouseListener'를 만드는 것입니다. 똑같은 일을하는 여러 개의 동일한 익명의 리스너를 생성하고 싶지는 않습니다. 그런 다음 각 단추에 리스너의 독립 인스턴스를 추가하십시오. – hfontanez
'int'를 매개 변수로 얻고 버튼이있는 새 서브 패널을 반환하는 메소드'createButton'을 반드시 만들어야합니다. 현재 해당 코드를 12 번 복사했습니다. 또한 [DRY] (http://en.wikipedia.org/wiki/Don%27t_repeat_yourself)를 읽어보십시오. – Tom