创建嵌套选项卡时遇到问题
Trouble creating nested Tabs
我正在尝试制作一个只有一个主标签的程序,最终我会添加更多,然后在主标签取代的面板中应该有4个标签。这是一个我正在尝试自学的项目 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/panels缺乏了解。
如果我理解正确的话,Frame 是主要容器,所有内容都在其中,而 panels 是框架中的部分,将显示程序的其他部分。我对什么是窗格感到困惑。
但是我不知道如何嵌套选项卡。
首先,我会花更多时间通读 How to Use Tabbed Panes
A 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);
尽管如此,我还是要小心,因为这可能会让用户在视觉上感到困惑(恕我直言)
查看此代码:
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
。
我正在尝试制作一个只有一个主标签的程序,最终我会添加更多,然后在主标签取代的面板中应该有4个标签。这是一个我正在尝试自学的项目 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/panels缺乏了解。 如果我理解正确的话,Frame 是主要容器,所有内容都在其中,而 panels 是框架中的部分,将显示程序的其他部分。我对什么是窗格感到困惑。
但是我不知道如何嵌套选项卡。
首先,我会花更多时间通读 How to Use Tabbed Panes
A 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);
尽管如此,我还是要小心,因为这可能会让用户在视觉上感到困惑(恕我直言)
查看此代码:
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
。