문제

나는 관습을 만들었다 JPanel 이미지를 표시합니다 (호출하자 MyPanel), 나는 이것을 추가했다 JFrame의 콘텐츠 페인.

원해요 JFrame 에 맞도록 자동으로 크기를 조정합니다 MyPanel 이미지가 변할 때.

전화해야 할 것 같습니다 frame.pack() 이것을하기 위해. 부름 pack() ~에서 MyPanel 커플 링을 증가시켜 그렇게하고 싶지 않습니다.

문제를 해결하기 위해 확장했습니다 JFrame (그것을 부르십시오 MyFrame) 그리고 만들었습니다 MyFrame 관찰자 및 MyPanel 주목할 만한. 이미지가있을 때마다 MyPanel 변경 사항을 표시하고 청취자에게 알립니다. MyFrame 이 경우. 그리고 MyFrame 전화 pack() 알림을 받으면.

매끄러운 크기 조정 방법이 있습니까? JFrame 내용에 따르면?

도움이 되었습니까?

해결책

설명한 솔루션은 합리적으로 보입니다.

또는 MyPanel이 이미지를 변경할 때마다 상위 프레임을 찾은 다음 Pack ()을 호출 할 수 있습니다. 그러한 프레임이 존재하지 않으면 아무것도하지 마십시오. 추가 클래스를 만들 필요가 없으며, 얻을만큼 느슨한 커플 링. 당신이 사용할 수있는 SwingUtilities.getancestorofclass () 이것을 쉽게하기 위해.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top