繁体   English   中英

Java Swing体系结构用于翻阅基于JPane的视图

[英]Java Swing architecture for flipping through JPane based views

我已经用静态布局完成了几个简单的基于swing的应用程序,但是现在尝试创建一个包含多个视图的应用程序时遇到了问题,这些视图可以通过按适当的导航按钮进行更改。

您可以将其与网站进行比较,以便每个视图都具有访问某些其他视图的按钮,但这可以在单个JFrame中使用。

我发现也许CardLayout( Cardlayout示例 )可能是这种结构的合适解决方案,但是我无法找出一种方法来从我在JPanes中实现的按钮中切换视图。他们各自的班级

当然,一种方法是像在小型Java教程示例中那样实例化父类中的所有内容,但这不是很干净,也不是针对多个视图的模块化的,不是吗。

如何实现这一点,以便我可以访问视图切换方法?

是的,当您要在其中切换各种视图时,CardLayout特别适用。 显然,就像@medoal所说的那样,也可以使用JTabbedPane。 无论如何,考虑到您要使用CardLayout且面板内的按钮允许您更改可见面板,您可以这样做:

  1. 创建面板,并允许他们注册一个实现给定接口的对象。 该接口将包含一个覆盖CardLayout#show(Container,String)方法的方法。 好吧,作为一个例子,考虑到您的面板都设置了名称,并且每个名称都不相同,您可以编写如下内容

    公共接口PanelToggler {public void toggleTo(String name); }

  2. 在包含CardLayout的类中,您将使用以下方法实现PanelToggler

    public void toggleTo(String name){(((CardLayout)getLayout())。show(this,name); }

这样,在每个面板中,每个按钮从CardLayout切换查看的元素都只需要使用正确的参数调用toogleTo。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM