JFrame에 두 개의 JPanel 구성 요소로 표시 할 클래스를 만들고 그 중 하나에 Mouselistener를 추가하려고합니다. 메인 JPanel을 생성하고 그 위에 마우스 이벤트를 처리해야하는 직사각형을 그리는 데 사용되는 drawRec (JPanel 유형)라는 private 클래스를 중첩합니다.하지만 클릭 할 때 아무 일도 발생하지 않습니다. 사전Java 중첩 클래스가 MouseListener 이벤트에 반응하지 않음
에서public class Exercise2 extends JPanel {
private drawRec square;
public static void main(String[] args) {
JFrame wind = new JFrame();
Exercise2 content = new Exercise2();
wind.setContentPane(content);
wind.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
wind.setLocation(100, 100);
wind.setSize(new Dimension(500,500));
wind.setVisible(true);
}
Exercise2() {
setBackground(Color.BLACK);
square = new drawRec();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
square.draw(g, 100, 90);
}
private class drawRec extends JPanel implements MouseListener {
drawRec() {
addMouseListener(this);
}
private void draw(Graphics g, int x, int y) {
g.setColor(Color.BLUE);
g.fillRect(x, y, 50, 20);
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {
System.out.println("Test");
}
public void mouseReleased(MouseEvent e) {}
}
}
감사