我正在学习Swing。我有一个JFrame
哪个JPanel
个容器-布局是一个CardLayout
。现在,当您填写用户和密码字段时,面板会切换并显示“工作中的”。
我想再添加一个面板来选择一些选项,然后再进入工作窗格。
CardLayout cl = new CardLayout();
setLayout(cl);
loginPane = new LoginPanel();
devicePane = new DevicePanel();
workingPane = new WorkingPanel();
add(loginPane,"1");
add(devicePane,"2");
add(workingPane, "3");
[LoginPanel
,DevicePanel
和WorkingPanel
都是扩展JPanel
的Java类。
这是遵循的好习惯,还是我应该考虑做其他事情?因为我开始看到必须从这些面板创建侦听器才能传达框架的操作。
使用
CardLayout
在登录窗格和工作窗格之间切换是否很好?”
是。实际上,除非在对话框中包含一个或多个面板(JDialog
或JOptionPane
)是有意义的,否则要选择CardLayout
。
我开始看到我必须从这些面板中创建侦听器以传达框架的操作。
这里的问题是扩展了可能不需要扩展的组件。我的意思是,LoginPanel
,DevicePanel
和WorkingPanel
应该都是纯JPanel
实例。通过扩展面板,代码可能具有封装的组件和侦听器,这些组件和侦听器应全部属于一个类。
作为一个类来做会否定这个问题,因为所有组件和侦听器都具有相同的作用域(和可达性)。