我创建了一个类,其中有一个名为cards的面板,其布局为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)
{
}
}
所以你可以看到我在其他课程中有我添加到卡片中的面板。 我想要做的是创建getNextCard()方法,该方法将当前活动的面板作为其争论。 当我调用此函数时,它应该切换当前活动面板与我的CardLayout列表中的下一个面板。 我怎样才能做到这一点? 谢谢
答案 0 :(得分:3)
您可能需要查看How to use CardLayout。
基本原则是,每张卡都有自己的标识符(通常是字符串常量)。要切换到特定卡,请致电
layout.show( container, identifier );
要实现类似getNextCard()
的方法(更好的名称可能是switchToNextCard( container, identifier )
),您可以使用简单的开关案例构造,例如:
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;
}
}
在此方法中,CARD1和CARD2是您的卡布局中面板的标识符(字符串常量)。在这种情况下,它会在这两张牌之间往返切换。