Java JTabbedPane不使用JPanels
为了获得额外的Java GUI作业学分,我尝试向JTabbedPane添加几个面板。实际上,它们是JFrame,但我只是改为扩展JPanel而不是JFrame,并删除了main()。无论如何,当我运行main()时,JTabbedPane和这两个面板都会显示,但它们是分开的。我错过了什么?Java JTabbedPane不使用JPanels,java,swing,jpanel,jtabbedpane,Java,Swing,Jpanel,Jtabbedpane,为了获得额外的Java GUI作业学分,我尝试向JTabbedPane添加几个面板。实际上,它们是JFrame,但我只是改为扩展JPanel而不是JFrame,并删除了main()。无论如何,当我运行main()时,JTabbedPane和这两个面板都会显示,但它们是分开的。我错过了什么? 您正在为引用组件创建两对变量,以添加到JFrame中,但添加指向空白JPanels的变量。基于 谢谢你的回复。我以为我听了你的话,但我没有。我将TabbedPane类中的JPanel更改为jpanelday
您正在为引用组件创建两对变量,以添加到
JFrame
中,但添加指向空白JPanels
的变量。基于
谢谢你的回复。我以为我听了你的话,但我没有。我将TabbedPane类中的JPanel更改为
jpaneldaygui=newjpanel()
JPanel OfficeAreaCalculator=newjpanel()代码>我还更改了TabbedPane()构造函数中的引用,并将主方法项设置为:`JTabbedPane DayGui=new JTabbedPane();`JTabbedPane OfficeAreaCalculator=new
JTabbedPane()代码>DayGui dg=new DayGui()代码>OfficeAreaCalculator oac=新的OfficeAreaCalculator()代码>我仍然得到相同的结果,3个窗口:一个JTabbedPane窗口有2个选项卡,两个面板您的代码有很多问题。学习上面的示例并遵循Java命名约定:)
import javax.swing.*;
public class TabbedPane extends JFrame
{
JPanel DayGui = new JPanel();
JPanel OfficeAreaCalculator = new JPanel();
JLabel firstLabel = new JLabel("First tabbed pane");
JLabel secondLabel = new JLabel("Second tabbed pane");
JTabbedPane tabbedPane = new JTabbedPane();
// constructor
public TabbedPane()
{
DayGui.add(firstLabel);
OfficeAreaCalculator.add(secondLabel);
tabbedPane.add("First Panel", DayGui);
tabbedPane.add("Second Panel", OfficeAreaCalculator);
add(tabbedPane);
}
public static void main(String[] args)
{
TabbedPane tab = new TabbedPane();
tab.pack();
tab.setVisible(true);
JTabbedPane DayGui = new JTabbedPane();
JTabbedPane OfficeAreaCalculator = new JTabbedPane();
DayGui dg = new DayGui();
OfficeAreaCalculator oac = new OfficeAreaCalculator();
}
}
public class TabbedPaneApp {
private static void createAndShowGUI() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTabbedPane firstPanel = new JTabbedPane();
JTabbedPane secondPanel = new JTabbedPane();
JLabel firstLabel = new JLabel("First tabbed pane");
JLabel secondLabel = new JLabel("Second tabbed pane");
JTabbedPane tabbedPane = new JTabbedPane() {
public Dimension getPreferredSize() {
return new Dimension(500, 400);
};
};
firstPanel.add(firstLabel);
secondPanel.add(secondLabel);
tabbedPane.add("First Panel", firstPanel);
tabbedPane.add("Second Panel", secondPanel);
frame.add(tabbedPane);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}