수다님 답변감사합니다만 제 cardlayout의 문제는약간 다릅니다 ㅠ _ㅠ
너만을
수다님 답변감사합니다.
그런데 저는 좀 다른문제를 가지고있습니다
jframe을 상속받는 mainjframe안에 버튼이있다면 여기있는 버튼을
눌렀을시에는 수다님 말씀대로 패널을 바꿀수가 있습니다
하지만제 의도는mainjframe에서 제가 따로 클래스로 만들어놓은 jpanel을 상속받는selectjpanel을
객체 생성하여사용할때 버튼이 mainjframe에있는것이 아니라 제가 만든 selectjpanel이라는
클래스내에 있는 버튼을 클릭시에 다른 패널로 바꾸고 싶은겁니다
즉, 패널을 바꿀려는 버튼과 이벤트 리스너가 mainjframe에 바로 있는것이 아니라
mainjframe에서 생성한selectjpanel 안에 버튼과 이벤트 리스너가 있는것입니다.
제 짧은소견으로는 selectjpanel안에서 버튼이벤트가 발생했을시 버튼이 클릭되었다는 정보를
selectjpanel을 생성한 mainjframe으로 넘겨서 그 정보를 감지한 mainjframe이
show를 하여 다른 패널을 보이면 될꺼 같긴한데,,어떻게 해야할지를 모르겠습니다.
반드시cardlayout을 써야할지, 다른방법이 있는지도 모르겠지만, 일단 카드레이아웃을 활용하여
하는방법도 잘모르겠습니다.
-
반율하
수다님 감사합니다 ㅠ _ㅠ
-
아더
SelectJPanel을 생성할 때, MainFrame 객체의 레퍼런스를 넘겨주면 됩니다. 그런 후에 SelectJPanel에서 MainFrame의 레이아웃으로 설정한 카드레이아웃의 레퍼런스를 얻을 수 있으니까 문제될 게 없겠죠.
복잡하게는 메인 프레임에다가 이번트를 감지해낼 수 있도록 백그라운드 데몬을 심어놓을 수도 있습니다. -
콩쑨
그게 싫으시면 이벤트에서 Frame을 제어할수있는곳에 메소드를 만들고 그 메소드를 호출하면 되고요.
-
딥와인
질문란이 아니지만....
Frame에 있다면 바꿀수 있으시면 다 할수있는건데.... 이벤트만 발생시키시면 그다음은 Frame값을 어디서든지 미리 받아서 처리하면 똑같던데요....