Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有比在一个JFrame中保留多个jTabbedPane更好的方法?_Java_Swing_Jtabbedpane - Fatal编程技术网

Java 有没有比在一个JFrame中保留多个jTabbedPane更好的方法?

Java 有没有比在一个JFrame中保留多个jTabbedPane更好的方法?,java,swing,jtabbedpane,Java,Swing,Jtabbedpane,这是我的菜单屏幕。它是一个JTabbedPane,当用户单击任何选项卡时,我将菜单的可见性设置为false,并将另一个选项卡式窗格的可见性设置为true。 假设用户单击了stock,则窗口将如下所示: 当用户单击“是”时,您也可以这样做: JTabbedPane preupdatetab = new JTabbedPane(); preupdatetab.setForeground(new Color(255,0,0).darker()); preupdatetab.setBounds(30,

这是我的菜单屏幕。它是一个JTabbedPane,当用户单击任何选项卡时,我将菜单的可见性设置为false,并将另一个选项卡式窗格的可见性设置为true。 假设用户单击了stock,则窗口将如下所示:


当用户单击“是”时,您也可以这样做:

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 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
    并交换代码。这会很快,不会给你新的功能,但会让你的代码更容易跟踪
  • 正如另一张海报所示,您可以同时使用上面的两个选项卡。这将分离代码,并为用户提供“升级”功能,而无需“返回”
  • 我喜欢做的是将两者结合起来。对于主菜单,将选项卡保持在左侧,但对于子菜单,在其上方有一个单独的
    JTabbedPane
    ,当第一个菜单被访问时,它将加载到框架中。它使您的窗口看起来整洁,可以轻松导航所有内容,并训练用户进行查看这样,一旦你的用户对它感到满意,你就可以让更多的菜单以这种方式运行,而且他们使用的越多,它就变得越直观

  • 我的一个应用程序中有类似的菜单样式。我将执行以下操作之一:

  • 为了更好的组织,我会将你的第二个
    JTabbedPane
    移动到另一个
    JFrame
    并交换代码。这会很快,不会给你新的功能,但会让你的代码更容易跟踪
  • 正如另一张海报所示,您可以同时使用上面的两个选项卡。这将分离代码,并为用户提供“升级”功能,而无需“返回”
  • 我喜欢做的是将两者结合起来。对于主菜单,将选项卡保持在左侧,但对于子菜单,在其上方有一个单独的
    JTabbedPane
    ,当第一个菜单被访问时,它将加载到框架中。它使您的窗口看起来整洁,可以轻松导航所有内容,并训练用户进行查看这样,一旦你的用户对它感到满意,你就可以让更多的菜单以这种方式运行,而且他们使用的越多,它就变得越直观

  • 如果您只有一个文件,那么您没有正确应用MVC和OOP概念……请参见(错误)另外,请看“在视图之间进行更改,而不是更改可见性”感谢您提供的提示,我将立即查看卡片布局:D我有多个java文件,每个文件处理不同的功能,但只有一个文件包含所有gui和事件,并且很难维护所有事件代码和添加组件a把所有的东西都放在一个java文件中,所以我问我是否应该让多个jframe,其他文件只处理插入和其他类似的操作,但是jframe文件中创建了一些对象。我不确定我是否完全理解这里的层次结构,但似乎主菜单的每个项都可能有多个子项?tur中的是吗n是否有子项?可能是一个JTree(允许同时查看父项和子项操作),然后使用
    CardLayout
    根据在树节点上的单击在视图之间切换。主菜单中的每个项都有多个子项,它们没有任何子项。阅读完所有这些回复后,我决定要创建多个jpanel表单并将它们添加到jframe中的面板中,并使用cardlayout根据用户在主菜单中选择的选项卡在它们之间切换,如果您只有一个文件,那么您没有正确应用MVC和OOP概念……请参见(错误)另外,请看“在视图之间进行更改,而不是更改可见性”感谢您提供的提示,我将立即查看卡片布局:D我有多个java文件,每个文件处理不同的功能,但只有一个文件包含所有gui和事件,并且很难维护所有事件代码和添加组件a把所有的东西都放在一个java文件中,所以我问我是否应该让多个jframe,其他文件只处理插入和其他类似的操作,但是jframe文件中创建了一些对象。我不确定我是否完全理解这里的层次结构,但似乎主菜单的每个项都可能有多个子项?tur中的是吗n是否有子项?可能是一个JTree(允许同时查看父项和子项操作),然后使用
    CardLayout
    根据在树节点上的单击在视图之间切换。主菜单中的每个项都有多个子项,它们没有任何子项。阅读完所有这些回复后,我决定要创建多个jpanel表单并将其添加到jframe中的一个面板中,并使用cardlayout根据用户在主菜单中选择的选项卡在它们之间进行切换,在您的示例中,jframe只有1.java文件包含一个jtabbedpane,而jtabbedpane中添加了多个jtabbedpane?
    changeitemname.setLayout(null)
    Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作。在不同的地区使用不同的PLAF。因此,它们不利于像素完美的布局。相反,使用布局管理器,或者与布局填充和边框一起使用。我不想