Java 开发带有导航按钮的软件

Java 开发带有导航按钮的软件,java,swing,navigation,cardlayout,Java,Swing,Navigation,Cardlayout,我正在尝试编写一个有几个导航按钮的程序,例如经典的“后退”和“前进”按钮。我需要一种让用户浏览不同页面的方法(JPanels)。我该怎么做?或者更好,一个真正的程序员(我是一个初学者)会怎么做呢?我现在使用的是CardLayout,我想存储用户执行的“路径”,并使用CardLayout提供的previous()和next()方法。这个解决方案怎么样?是不是有点“傻瓜”?是否存在一种“导航模式” 您可以简单地将创建的JPanel存储在列表或堆栈中,只要它们保持任何其他JPanel的内部状态不变。然

我正在尝试编写一个有几个导航按钮的程序,例如经典的“后退”和“前进”按钮。我需要一种让用户浏览不同页面的方法(
JPanel
s)。我该怎么做?或者更好,一个真正的程序员(我是一个初学者)会怎么做呢?我现在使用的是
CardLayout
,我想存储用户执行的“路径”,并使用
CardLayout
提供的previous()和next()方法。这个解决方案怎么样?是不是有点“傻瓜”?是否存在一种“导航模式”

您可以简单地将创建的JPanel存储在列表或堆栈中,只要它们保持任何其他JPanel的内部状态不变。然而,这可能需要一些资源,这就是为什么最好只存储一个对象的内部状态,而不是整个对象

请看Memento图案:


非常感谢您。我知道我可以使用Memento模式作为逻辑来恢复路径的状态,但从可视化的角度来看,总是使用CardLayout?例如,两个JPanel,命名为panel_1和panel_2。发起人的初始状态=1,我将在我的CardLayout面板_1上显示。用户从panel_1进入panel_2,因此状态更新为2,panel_2显示在屏幕上。这就是我应该使用的逻辑吗???仔细看看维基百科中的Java示例。有一个发起人持有实际状态。我会让你的JFrame成为创始人。set()操作将是在JFrame中显示的实际JPanel设置。还可以在JFrame中添加一个类似于维基百科保存状态的列表来保存您的memento(memento将是重新创建JPanel所需的所有数据)。还保留一些i,这是一些已经显示的片段。对于上一个/下一个建筑,只需获取i-1/i+1纪念品(如果存在),然后重新创建面板。您不必在此实现中使用CardLayout