我正在尝试创建一个具有一个主Tab的程序,最终我将添加更多,然后在主Tab中取代的面板中应该有4个Tabs。这是我正在尝试和自学java的项目,所以我只想要一些见解。
import javax.swing.*;
public class logBook extends JFrame{
public logBook(){
this.setSize(300,300);
this.setVisible(true);
this.setLocationRelativeTo(null);
JPanel mainPanel = new JPanel();
JTabbedPane raidSectionsPane = new JTabbedPane();
raidSectionsPane.addTab("Deltascape",mainPanel);
JPanel deltascapePanel = new JPanel();
JTabbedPane deltascapeSections = new JTabbedPane();
deltascapeSections.addTab("V1.0",deltascapeSections);
raidSectionsPane.add(deltascapePanel);
this.add(raidSectionsPane);
}
public static void main(String[] args){
logBook logger = new logBook();
logger.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
基本上我有点失落我猜这是因为我对Frames / panes / panel缺乏了解。 如果我理解正确的框架是所有内容都在其中的主要容器,而面板是框架中将显示程序其他部分的部分。我对什么是窗格感到困惑。
但我无法了解如何嵌套标签。
答案 0 :(得分:1)
首先,我花了一点时间阅读How to Use Tabbed Panes
JTabbedPane
仍然只是另一种类型的组件,因此您可以使用addTab
方法
JTabbedPane outter = new JTabbedPane();
JTabbedPane inner = new JTabbedPane();
inner.addTab("Inner Tab", new JPanel());
outter.addTab("Outter Tab", inner);
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(outter);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
我会小心这样做,因为它可能在视觉上让用户感到困惑(恕我直言)
答案 1 :(得分:0)
请参阅此代码:
JPanel mainPanel = new JPanel();
JTabbedPane raidSectionsPane = new JTabbedPane();
raidSectionsPane.addTab("Deltascape", mainPanel);
JPanel deltascapePanel = new JPanel();
JTabbedPane deltascapeSections = new JTabbedPane();
deltascapeSections.addTab("V1.0", deltascapePanel);
mainPanel.add(deltascapeSections);
this.add(raidSectionsPane);
}
您需要将deltascapeSections
添加到mainPanel
,将mainPanel
添加到deltascapeSections
。