Java JTabbedPane不';我不能正常工作

Java JTabbedPane不';我不能正常工作,java,swing,layout,jtabbedpane,Java,Swing,Layout,Jtabbedpane,当我运行我的应用程序时,我只看到tab2和tab3窗格,我有很多问题: tabPanel.setLocation不工作 tabPanel.addTab(“tab1”…)不起作用 btn.setPreferredSize(新尺寸(50,20));当我 单击“tab2”它可以正常工作,但当我单击“tab3”时,它不会更改按钮 大小。。为什么? 我使用空布局 tabPanel.setLocation不工作 不要使用setLocation(…),而是使用嵌套组件和布局管理器来实现令人愉悦且易于维护的

当我运行我的应用程序时,我只看到tab2和tab3窗格,我有很多问题:

  • tabPanel.setLocation不工作
  • tabPanel.addTab(“tab1”…)不起作用
  • btn.setPreferredSize(新尺寸(50,20));当我 单击“tab2”它可以正常工作,但当我单击“tab3”时,它不会更改按钮 大小。。为什么?
我使用空布局

tabPanel.setLocation不工作

不要使用
setLocation(…)
,而是使用嵌套组件和布局管理器来实现令人愉悦且易于维护的GUI布局

tabPanel.addTab(“tab1”…)不起作用

使用Swing,您只能将组件添加到一个容器中,就是这样。该组件将仅显示在其添加到的最后一个容器中

btn.setPreferredSize(新尺寸(50,20))当我单击“tab2”时,它工作正常,但当我单击“tab3”时,它不会更改按钮大小。。为什么?

同样,您需要学习布局管理器

我使用空布局


您几乎不想这样做,因为这将使您的应用程序在除您自己的平台之外的任何平台上看起来都不正确,并且使维护和升级变得非常困难。最好使用布局管理器,让他们为您完成布局和调整组件大小的繁重工作。

您的目标是什么

JTabbedPane
用于组织视图,我看到您试图添加一个JPanel作为第一个选项卡,这是JTabbedPane的“主要目标”

    public void tabbedPane(){
        JPanel tab1 = new JPanel();
            JButton btn = new JButton("Buton - 1");
            btn.setPreferredSize(new Dimension(50, 20));
            btn.setLocation(0, 10);
        tab1.add(btn);
        JTabbedPane tabPanel = new JTabbedPane();
        tabPanel.addTab("tab1", null, tab1);
        tabPanel.addTab("tab2", tab1);
        tabPanel.addTab("tab3", btn);
        tabPanel.setPreferredSize(new Dimension(450, 150));
        tabPanel.setLocation(50, 0);
        mainPanel.add(tabPanel);//Main panel on frame
    }
尝试像这样添加选项卡,您将传递一个“null”值作为图标,这绝对不会影响,但如果您没有使用图标,则只需将面板添加为具有预期名称的选项卡即可

在第二次添加时,再次添加相同的组件(表1)

在第三次添加时,您试图添加一个已经在容器上的组件(tab1)。这将使该组件仅显示在您添加到的最后一个容器中。此外,组件是一个
JButton
。我无法将
JButton
的目标视为选项卡

对于
setLocation(x,y)
问题,请检查您在容器上使用的布局

同样,我认为这里的主要问题是,您没有正确处理您的问题,或者您没有使用所需的工具

tabPanel.addTab("Tab 1", tab1);