编程语言
首页 > 编程语言> > java-如何使用CardLayout显示下一个卡片项目?

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