【发布时间】:2013-04-17 19:11:16
【问题描述】:
所以我有一个带有 CardLayout 的 JPanel。 正如预期的那样,此 CardLayout 管理框架中面板的切换。 切换由两个按钮完成:“返回”和“下一步”。
我想知道是否有办法关闭整个应用程序(即调用System.exit(0)),当它位于最后一张卡上并且再次按下“下一步”时。
我到处寻找解决方案,但我找不到任何东西。
问题是:我不知道如何检查哪个是最后一个。
这是我的代码的监听器摘录:
public void actionPerformed(ActionEvent arg0) {
CardLayout l = (CardLayout) holder.getLayout();
if(arg0.getSource() == opt[1]){ //opt[1] is the "Next" button
//Insert if statement here to check if
//the CardLayout is on the last card
{
System.exit(0);
} else {
l.next(holder); //holder is the JPanel with the CardLayout
}
}
}
【问题讨论】:
-
在“下一个”按钮的处理程序中,如果当前卡片是最后一张,则调用 exit()(或框架上的 dispose())。不知道你在哪里遇到了麻烦——真的就是这么简单。
-
@ErnestFriedman-Hill 问题是:我不知道如何检查哪个是最后一个。我看到了一个方法 .last() 但是那个方法列出了最后一张卡片并且没有返回任何东西(也许将它与我认为最后一张卡片进行比较)。
标签: java swing cardlayout