java-如何使用CardLayout显示下一个卡片项目?
作者:互联网
我创建了一个类,该类具有一个名为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列表中切换当前活动的面板和下一个面板.
我怎样才能做到这一点?
谢谢
解决方法:
您可能想看看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是您在cardlayout中的面板的标识符(字符串常量).在这种情况下,它将在这两张卡之间来回切换.
标签:cardlayout,swing,jpanel,jframe,java 来源: https://codeday.me/bug/20191201/2077365.html