如何在JTabbedPane中创建JScrollPane



我正试图在JTabbedPane的一个选项卡中创建一个JScrollPane。我尝试了我认为可行的方法,这就是:

    pane.add("Main", mainGame);// These are my other tabs
    pane.add("Upgrades", upgradeScreen); //the JTabbedPane
    pane.add("Credits", creditsTab);
    upgradeScreen.setLayout(null); //The null layout
    lblMoney2.setBounds(10, 11, 277, 22);
    upgradeScreen.add(lblMoney2); // A simple JLabel
    scrollPane.add(upgradeScreen); //my JScrollPane

其中pane是我的JTabbedPane,scrollPane则是我的JScrollPane。这只是去掉了我的upgradesScreen选项卡。我有点期待,但我不知道还能做什么。如果需要更多的代码让你弄清楚,告诉我,我会把它放进去,否则,谢谢你的帮助!

不要使用JScrollPane#add,而是要使用JScrollPane#setViewportView

查看如何使用滚动窗格的详细信息。

建议-不要使用null布局,因为它们限制了应用程序在多个平台上运行的能力。相反,花点时间学习布局管理器如何工作

这只是去掉了我的升级屏幕标签

是的,因为任何组件都不能同时有两个父级。您先将upgradeScreen添加到JTabbedPane,然后再次将其添加到JScrollPane。Component的add(Component)函数最终将调用addImpl(component)函数:该函数将从组件的旧父级移除组件,并将其添加到新父级。

但是:

  1. 您需要将JScrollPane添加到JTabbedPane实例中
  2. 要滚动的组件使用setViewportView(component)功能将其设置为JScrollPane的视图对于您的上下文,它是upgradeScreen

相关内容

  • 没有找到相关文章

最新更新