本帖最后由 roycxshun 于 2009-09-01 23:39:36 编辑

解决方案 »

  1.   

    我运行的是下面的代码,两个标签都能显示。楼主能不能贴出来有问题的代码?
    JTextArea ta1 = new JTextArea(); 
    JTextArea ta2 = new JTextArea(); 
    JTabbedPane tp = new JTabbedPane();  ta1.append("show me the money"); 
    ta1.append("please show me why"); 
    ta2.append("showme why"); 
    tp.insertTab("标签一",null,ta1,"标签一",0); 
    tp.insertTab("标签二",null,ta2,"标签二",1); 
    add(tp);  setLayout(new FlowLayout()); 
    setVisible(true); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setBounds(100,100,400,300);
      

  2.   

    对这样的话,是都能显示,但当你两个标签都用同一个容器,如:
    JTextArea ta1 = new JTextArea(); 
    JTabbedPane tp = new JTabbedPane(); 
    ta1.append("show me the money"); 
    ta1.append("please show me why"); 
    tp.insertTab("标签一",null,ta1,"标签一",0); 
    tp.insertTab("标签二",null,ta1,"标签二",1); 
    add(tp); 
    setLayout(new FlowLayout()); 
    setVisible(true); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setBounds(100,100,400,300); 
    这样就会出问题了,只能显示标签二,而标签一似乎不见了。
      

  3.   

    解决了 你看一下 应该还是你的容器放置的顺序有问题  哈哈 结贴给分吧 import javax.swing.*;public class JTabbedTest extends JFrame {
    JTabbedPane tp = new JTabbedPane(JTabbedPane.TOP);
    JPanel p1 = new JPanel();

    JTextArea ta1 = new JTextArea();
    JTextArea ta2 = new JTextArea();

    public JTabbedTest(){
    ta1.append("show me the money");
    ta2.append("show me the money");

    tp.add("Tab1", ta1);
    tp.add("Tab2", ta2);
    p1.add(tp);
    getContentPane().add(p1);
    }

    public static void main(String[] args) {
    JTabbedTest a = new JTabbedTest();
    a.setSize(300, 300);
    a.setVisible(true);
    }
    }
      

  4.   

    我感觉这样不行 可能是加入的时候 将之前的tab覆盖了 这是我的理解 不知道对不对
      

  5.   

    嗯,是啊,如果相同容器的话,会把前面一个容器的tab覆盖。
      

  6.   

    你的意思是说:控件不能重复添加,这是JAVA SE的规定吗?
      

  7.   

    这边加了,先前加的就没了,好像一直都是这样的不然,两个按钮共享一个Model,不太现实啊
      

  8.   

    一直都这样,好像只有JAVA是这样的吧,其他的倒没什么发现这样的问题。谢谢了。结帖罗。
      

  9.   

    请问这是JAVA的规定还是其他语言都一样呢?
      

  10.   

    我说的是Swing ,其他的像VB,C#之类的一般都是直接拖下来,没有尝试过,应该也是不行的吧