2013-05-01 52 views
0

为Java的简单GUI界面做了一些自学。试图编写一个简单的界面。这是下面的代码:用于Java的简单GUI界面

public void MainPanel() { 

    JFrame frame = new JFrame(); 
    frame.setTitle("Title"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    JTabbedPane mpt = new JTabbedPane(); 

    mpt.addTab("Intro", new IntroPanel()); 
    mpt.addTab("Catalogue", new CataloguePanel()); 
    mpt.addTab("Order", new OrderPanel()); 
    mpt.addTab("Track", new TrackPanel()); 

    JPanel main = new JPanel(); 
    main.setBackground(Color.white); 

    JLabel label1 = new JLabel("Intro"); 

    main.add(label1); 
    frame.add(main); 
    frame.add(mpt);  
    frame.pack(); 
    frame.setLocationRelativeTo(null); 
    frame.setVisible(true); 
} 

我目前面临的问题是:如果我把frame.add(mpt)frame.add(main)盈,只有选项卡将出现,但标签介绍。如果我把frame.add(mpt)面前frame.add(main)。介绍将显示,但不是标签。

这是怎么发生的?他们为什么互相重叠?我做了一些教程,但没有成功。

+0

请分配一些高度,你的选项卡窗格和JPanel的,这些都得到100%的高度bydefault,并互相重叠,以便测试您可以为它们分配一个自定义高度,或者您可以使用JGrid来排列组件。 – 2013-05-01 10:57:52

+0

我会尽快做到这一点 – John 2013-05-01 11:01:34

回答

4

尝试给它一些其他布局。

例如。 frame.setLayout(new FlowLayout());

信息:

根据Java命名约定的方法的名称应该是这样public void mainPanel()

+0

我做了frame.setLayout(new FlowLayout());布局非常难看。我想在顶部有标签,然后是下面的措辞和信息。我怎么能达到 – John 2013-05-01 11:01:08

+0

,为什么我不能浏览我的标签? – John 2013-05-01 11:01:53

+0

@John阅读Oracle教程如何使用BorderLayout,因为JFrame在API – mKorbel 2013-05-01 11:06:33