在Java Swing中,当工作流程不是线性时,如何在JPanel之间切换?

时间:2014-03-10 20:49:42

标签: java swing jpanel cardlayout

我想创建一个在JFrame之间切换的JPanels,但其结构比CardLayout似乎提供的链接列表更复杂。有没有提供更多基于有向图的布局的东西?

以下是我想到的情景:

 ----------------------------  ->  ---------------
| Select User / New User Btn |    | New User Form |
 ----------------------------  <-  ---------------
     |         
     V
 --------
| Form 1 |
 --------
     |
     V
 --------       --------------
| Form 2 |  -> | Results Page |
 --------       --------------

正如您所看到的,这不是链接列表,而是有向图。有没有一种标准的方法来处理这种情况?

2 个答案:

答案 0 :(得分:3)

  

我想创建一个在多个JPanel之间切换的JFrame,但其结构比CardLayout似乎提供的链表更复杂

您不必以线性顺序查看CardLayout中的面板。

您可以使用show(...)方法指定要显示的面板名称,以显示您想要的任何面板。请查看How to Use Card Layout上Swing教程中的示例,了解使用此方法的工作示例。

答案 1 :(得分:2)

CardLayout只提供卡片,由您自行决定哪张卡片可见。它为方便起见提供了一些有序列表样式的API方法(可能是因为设计人员认为这是更常见的用例之一),但您不必使用它们。

在按钮中实现流控制(或者在您使用的任何代码中确定行为),然后使用CardLayout.show()显示相应的卡片。如果您不愿意,则

}。first()last()previous()

相关问题