2014-06-20 2 views
0

jDesktopPane 내에 jInternalPane이 있습니다. jDesktopPaneBorderLayout 레이아웃을 가진 jPanel 내에 있습니다.jInternalPane의 카드 레이아웃을 어떻게 얻을 수 있습니까?

내 내부 창에서 프로그래밍 방식으로 카드를 전환하려고합니다.

javax.swing.plaf.basic.BasicInternalFrameUI$Handler cannot be cast to java.awt.CardLayout :

public void switchCards() { 
    CardLayout cl = (CardLayout)(internalFrame1.getLayout()); 
    cl.show(internalFrame1, "card1"); //Where card1 is a jPanel 
} 

그러나, 오류 추적에, 나는 다음과 같은 볼 수 있습니다 : 나는 나누기 다음 코드 관련 부분이있다.

누군가이 오류를 제대로 처리 할 수 ​​있도록 올바른 방향을 알려 주시겠습니까? 나는 그것을하는 법을 배우고 싶다!

미리 감사드립니다.

+0

풋 인 JPanel을 답변이 늦어 죄송합니다 JInternalFrame의 – mKorbel

답변

2

내부 프레임 자체가 아닌 JInternalFrame의 내용 창에서 CardLayout을 사용합니다.

당신은 내용 창의 레이아웃을 설정할 수 있습니다

Container contentPane = internalFrame.getContentPane(); 
contentPane.setLayout(new CardLayout()); 

contentPane.add(panel1, "Card1"); 
contentPane.add(panel2, "Card2"); 

를 그런 다음 switchCards을() 메소드는 다음과 같습니다

Container contentPane = internalFrame.getContentPane(); 
CardLayout cl = (CardLayout)(contentPane.getLayout()); 
cl.show(contentPane, "card1"); //Where card1 is a jPanel 
+0

에! 나는 여행을 떠났다. 내가 가진 혼란을 해결해 주셔서 감사합니다. 귀하의 코드는 제가 누락 된 부분을 완전히 설명했으며, 지금은 이해하고 있습니다. 감사합니다. – Andrew

관련 문제