저는 대학을위한 작은 Java 프로그램을 만들고 있습니다. 업데이트 후에 일부 그래픽을 다시 그리는 데 문제가 있습니다. 여기에는 컨텍스트가 있습니다 :다른 구성 요소의 다시 그리기
저는 그래픽 요소 (직사각형, 원 등)를 그리거나 그리는 데 사용되는 JComponent와 사용자에게 정렬 옵션을 제공하는 JMenu를 기본적으로 포함하는 메인 Jframe을 가지고 있습니다.
JComponent가 paintComponent를 대체하므로 요청시 Graphics를 그릴 수 있습니다. 그래픽은 그래픽 유형을 정의하는 메소드가있는 세관 클래스이며 각각은 자신의 drawRect() 또는 drawOval()을 호출합니다. 그것은 아주 잘 작동하고 있습니다. 주 JFrame에 대해 repaint()을 호출하면 예상대로 JComponent()의 paintComponent가 호출됩니다.
JMenu의 메뉴 중 하나에는 다른 순서에 따라 그래픽을 정렬하는 옵션이 있습니다. 따라서 각 옵션의 ActionListner에서 그래픽을 포함하는 일종의 LinkedList를 진행합니다.
문제는 내가 ActionListener에서 정렬 작업을 수행 할 때 repaint()를 호출하여 JComponent에서 Graphics를 그리지 만 대신 JMenu의 repaint()를 호출합니다. 어떤 식 으로든 JMenu에서 JComponent의 다시 칠하기를 호출 할 수 있습니까?
감사합니다.
이제 분명히 언급 할 것입니다. Thanks = D 전체 JComponent를 생성자 또는 JMenu의 메서드로 전달하지 않고도이 작업을 수행 할 수 있습니까? – JulioQc
@JulioQc : 어떻게 든 JComponent의 상태를 변경할 메소드가있는 객체를 전달해야합니다. –