有没有比在单个 JFrame 中保留多个 JTabbedPanes 更好的方法?
Is there any better way then keeping multiple JTabbedPanes inside a single JFrame?
这是我的菜单屏幕。这是一个 JTabbedPane,当用户单击任何选项卡时,我将菜单的可见性设置为 false,并将另一个选项卡式窗格的可见性设置为 true。
假设用户点击了股票,那么 window 将看起来像这样:
当用户单击“<<”选项卡时,它将股票的可见性设置为 false,菜单的可见性设置为 true。
只创建多个 JFrame 文件并执行相同操作而不是在单个框架内添加多个 TabbedPanes 是否更好?为整个 JFrame 维护单个 .java 文件变得越来越困难。
是的,你也可以这样做,方法是:
JTabbedPane preupdatetab = new JTabbedPane();
preupdatetab.setForeground(new Color(255,0,0).darker());
preupdatetab.setBounds(30,15,930,300);
preupdate.add(preupdatetab);
precomplete.setLayout(null);
preupdatetab.add(precomplete,"Complete Change");
preonce.setLayout(null);
preupdatetab.add(preonce,"Qty Change");
changelocationpanel = new JPanel();
changelocationpanel.setLayout(null);
preupdatetab.add(changelocationpanel,"Change Location");
changesaleprice = new JPanel();
changesaleprice.setLayout(null);
preupdatetab.add(changesaleprice,"Change Sale Price");
changebookprice = new JPanel();
changebookprice.setLayout(null);
preupdatetab.add(changebookprice,"Change Book Price");
changevendor = new JPanel();
changevendor.setLayout(null);
preupdatetab.add(changevendor,"Change Vendor");
changeitemname = new JPanel();
changeitemname.setLayout(null);
preupdatetab.add(changeitemname,"Change Item Name");
其他变量全局声明为JLabel所以不要混淆
下图会让你更清楚这一点。
我的一个应用程序中有类似的菜单样式。我会执行以下操作之一:
- 为了更好地组织,我会将您的第二个
JTabbedPane
移到另一个 JFrame
并交换代码。这会很快,不会给您带来新的功能,但会使您的代码更易于跟踪。
- 正如其他海报所示,您可以执行上面的两个选项卡。这将分离代码并为用户提供进入 "Up a level" 的功能,而无需进入 "back".
- 我喜欢做的是两者的结合。对于主菜单,请将选项卡保持在左侧,但对于子菜单,
JTabbedPane
上方 会在访问第一个菜单时加载到框架中。它为您的 windows 提供了一个干净的外观,一种轻松浏览所有内容的方式,并且它将训练用户向左看大的变化,向上看小的变化。这样,一旦您的用户对此感到满意,您就可以让更多的菜单以这种方式运行,并且他们使用得越多,它就会变得越直观。
这是我的菜单屏幕。这是一个 JTabbedPane,当用户单击任何选项卡时,我将菜单的可见性设置为 false,并将另一个选项卡式窗格的可见性设置为 true。 假设用户点击了股票,那么 window 将看起来像这样:
当用户单击“<<”选项卡时,它将股票的可见性设置为 false,菜单的可见性设置为 true。
只创建多个 JFrame 文件并执行相同操作而不是在单个框架内添加多个 TabbedPanes 是否更好?为整个 JFrame 维护单个 .java 文件变得越来越困难。
是的,你也可以这样做,方法是:
JTabbedPane preupdatetab = new JTabbedPane();
preupdatetab.setForeground(new Color(255,0,0).darker());
preupdatetab.setBounds(30,15,930,300);
preupdate.add(preupdatetab);
precomplete.setLayout(null);
preupdatetab.add(precomplete,"Complete Change");
preonce.setLayout(null);
preupdatetab.add(preonce,"Qty Change");
changelocationpanel = new JPanel();
changelocationpanel.setLayout(null);
preupdatetab.add(changelocationpanel,"Change Location");
changesaleprice = new JPanel();
changesaleprice.setLayout(null);
preupdatetab.add(changesaleprice,"Change Sale Price");
changebookprice = new JPanel();
changebookprice.setLayout(null);
preupdatetab.add(changebookprice,"Change Book Price");
changevendor = new JPanel();
changevendor.setLayout(null);
preupdatetab.add(changevendor,"Change Vendor");
changeitemname = new JPanel();
changeitemname.setLayout(null);
preupdatetab.add(changeitemname,"Change Item Name");
其他变量全局声明为JLabel所以不要混淆
下图会让你更清楚这一点。
我的一个应用程序中有类似的菜单样式。我会执行以下操作之一:
- 为了更好地组织,我会将您的第二个
JTabbedPane
移到另一个JFrame
并交换代码。这会很快,不会给您带来新的功能,但会使您的代码更易于跟踪。 - 正如其他海报所示,您可以执行上面的两个选项卡。这将分离代码并为用户提供进入 "Up a level" 的功能,而无需进入 "back".
- 我喜欢做的是两者的结合。对于主菜单,请将选项卡保持在左侧,但对于子菜单,
JTabbedPane
上方 会在访问第一个菜单时加载到框架中。它为您的 windows 提供了一个干净的外观,一种轻松浏览所有内容的方式,并且它将训练用户向左看大的变化,向上看小的变化。这样,一旦您的用户对此感到满意,您就可以让更多的菜单以这种方式运行,并且他们使用得越多,它就会变得越直观。