좋아요, 지금은 다중 창 프로그램을 만들려고합니다. JFrame 컨텐츠 창을 메소드 호출에서 업데이트하는 방법은 무엇입니까?
그리고 다른 포럼을보고에서
, 그것은 당신이 자바 JFrame의 당신이new JComponent(new window/layout/idk)
을 추가하여 컨텐츠 창을 업데이트해야 할하는 것, false로 현재 창 가시성을 설정 true로 새 가시성을 설정하고 검증 &/내용 창을 다시 칠 :
지금
contentPane.add(newWindowPanel);
currentWindowPanel.setVisible(false);
newWindowPanel.setVisible(true);
contentPane.validate();
contentPane.repaint();
, 부분적으로 내가 뭘하려고하고 JPanel
를 확장하는 클래스를 생성 할,이 클래스가 나는 많은 다른 JPanel의 클래스에 대한 계층 구조의 최상위로 서있다 만들려고합니다.
public void updateContentPane(Container contentPane, JPanel currentPanel, JPanel nextPanel){
contentPane.add(nextPanel);
currentPanel.setVisible(false);
nextPanel.setVisible(true);
contentPane.validate();
contentPane.repaint();
}
내가 자식 클래스 중 하나에서이 메소드를 호출
, 그것은 작동하지 않습니다 클래스 내에서 나는이 방법을 가지고있다.updateContentPane(WindowMain.contentPane, this, mainMenuClass);
각 하위 클래스는 JPanel 특성을 상속합니다.
"WindowMain"은 JFrame을 확장하는 클래스이고 "contentPane"은 contentPane 프레임을 보유하는 정적 컨테이너 변수입니다.
"this"는 현재 클래스 (JPane을 상속 함)를 나타내지 만 "this"는 실제로 작동하지 않습니다. new Object()
이 작동합니다.
"mainMenuClass"도 JPanel을 상속하며 이미이 클래스에서 인스턴스화되었습니다.
내 목표는 해당 방법을 호출하여 한 장면에서 다른 장면으로 간단히 이동하는 것입니다. 하지만 코드 (디버그)를 통과하지만 아무 일도 일어나지 않습니다. 그러나 메서드 내에서 코드를 가져 와서 버튼 리스너 내부에 배치하면 제대로 작동합니다.
(이 모든 글을 쓰는 것은 유감 스럽지만, 혼란 스럽지만, 그럼에도 불구하고 이것을 알아야 할 필요가 있습니다. contentPane에 이미 클래스가 포함되어있을 때 조건을 설정하므로 언급 할 필요가 없습니다)
당신이이 방법을 우리가 실제로 실행되고 있는지 확인할 수 있습니다를 호출하는 코드를 추가 할 수 있습니다 수행하여 전체 프레임을 업데이트 할 수 있을까? –