2012-07-31 2 views
3

나는 cards라는 이름의 패널을 가진 클래스를 만들고 그 레이아웃은 CardLAyout입니다. 카드 항목을 추가했습니다. 이 클래스에서 나는 레이아웃을 다음 카드로 전환하여 호출하여 별도의 메서드를 만들고 싶습니다. u는 볼 수CardLayout을 사용하여 다음 카드 항목을 표시하는 방법은 무엇입니까?

import java.awt.CardLayout; 
import java.awt.Container; 


public class cards 
{ 
     public Container cards; 

//creating objects for other classes 
public cricGUI gu; 
public cricMainMenu mm; 

public void cardsList() 
{ 
    cards = new Container(); 
    cards.setLayout(new CardLayout()); 

    //adding panels and contentPanes from other classes. 
    mm = new cricMainMenu(); 
    gu = new cricGUI(); 

    cards.add(mm.contentPane); 
    cards.add(gu.pane); 
} 
public void getNextCard(Container x) 
{ 

} 

}

그래서 난 내 카드에 추가 한 다른 클래스에 패널을 가지고있다. 내가 원하는 것은 현재 활성화 된 패널을 그것의 arguements로 취하는 getNextCard() 메소드를 생성하는 것이다. 이 함수를 호출하면 현재 활성 패널이 내 CardLayout 목록의 다음 패널로 전환되어야합니다. 어떻게해야합니까? 감사합니다.

+0

관련 [보기] (http://stackoverflow.com/a/11652924/1057230)를 참조하십시오. –

답변

3

How to use CardLayout을보고 싶을 수 있습니다.

기본 원칙은 모든 카드가 자체 식별자 (일반적으로 문자열 상수)를 가져옵니다.

public void switchToNextCard(Panel container, String currentCard) 
{ 
     switch (currentCard) 
     { 
     case CARD1: 
      layout.show(container, CARD2); 
      break; 
     case CARD2: 
      layout.show(container, CARD1); 
      break; 
     default : 
      throw IllegalArgumentException("Unsupported CardIdentifier.") 
      break; 
     } 
} 

에서 : 특정 카드로 전환하려면, 당신은 (더 나은 이름은 아마 switchToNextCard(container, identifier) 될 것입니다) 당신은 예를 들어 같은 구성 쉬운 스위치 케이스를 사용할 수 getNextCard() 같은 방법을 구현하기 위해

layout.show(container, identifier); 

전화 이 CARD1 및 CARD2 메소드는 카드 레이아웃 내의 패널에 대한 식별자 (문자열 상수)입니다. 이 경우 두 카드간에 앞뒤로 전환됩니다.

관련 문제