2013-04-06 71 views
1
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 
    } 

工作,我只看到TAB2 TAB3和窗格和我有很多问题:JTabbedPane的当我运行我的应用程序不能正确

  • tabPanel.setLocation不起作用
  • 的TabPanel。 addTab(“tab1”...)不起作用
  • btn.setPreferredSize(new Dimension(50,20));当我 点击“tab2”它正常工作,但是当我点击“tab3”它不会改变按钮 大小..为什么?

,我使用空布局

回答

1

你的目标是什么?

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

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

尝试添加这样的标签,你传递一个“空”的值作为图标,它不能影响所有,但如果你不使用的图标,然后只需添加面板作为预定名称的标签。

第二次添加时,再次添加相同的组件(tab1)。

第三次添加时,您尝试添加一个已经在容器(tab1)上的组件。这将使该组件仅出现在您添加到的最后一个容器中。此外,组件是JButton。我看不到JButton作为选项卡的目标。

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

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

2

tabPanel.setLocation不起作用

不要使用setLocation(...)而是使用嵌套组件和布局管理器,实现了令人愉悦和轻松维护GUI布局。

tabPanel.addTab( “TAB1” ......)不工作

秋千,你只能添加一个组件到一个容器,仅此而已。组件只会显示在最后添加的容器中。

btn.setPreferredSize(new Dimension(50, 20));当我点击“tab2”它工作正常,但是当我点击“tab3”它不会改变按钮大小。为什么?

同样,你将要学习的布局管理器

,我使用空布局

你几乎从未要做到这一点,因为这将使您的应用程序不看在任何平台上都是正确的,但只能是自己的,并且会使维护和升级非常困难。使用布局管理器并让他们完成为您布置和调整组件的繁重工作要好得多。

相关问题