代码很长,我只贴一点来说明问题:
        channel1_audio1_language=new TextField("eng");        
        channel1_audio1_language.setBounds(260, 30,50, 20);
        channel1_audio1_language.addTextListener(this);
        channel1_audio1_language.setBackground(Color.white);
        channel1_audio1_pane.add(channel1_audio1_language);       channel2_audio1_language=new TextField("eng");        
        channel2_audio1_language.setBounds(260, 30,50, 20);
        channel2_audio1_language.addTextListener(this);
        channel2_audio1_language.setBackground(Color.white);
        channel2_audio1_pane.add(channel2_audio1_language);他们分别是tab(index=2,3)
其中channel1_audio1_language在tabpanel(index=0)也就是刚启动时不出现
而channel2_audio1_language文本框却出现,如果点一下tabpanel上的标签,然后一切就恢复正常
我现在都痛苦死了,就这么一个问题,我马上要交这个项目阿!麻烦您,帮我参谋参谋!非常感谢!

解决方案 »

  1.   

    可能和你的关于setLayout()的设定有关!
    你要是想让你的各个组件按你的思想去放的话!
    你可以用this.setLayout(null);
    这样的话整个窗口的布局会按照你的想法去实现了!
      

  2.   

    我的setLayout是采用this.setLayout(null)
      

  3.   

    给你一个看看有没有用:
    import javax.swing.*;
    import java.awt.*;class SSTab 
    {
    JFrame jf;
    JTabbedPane jtp;
    JLabel lbl1;
    JPanel jp1;
    JLabel lbl2;
    JPanel jp2;
    Container c;

    public SSTab()
    {
    jf = new JFrame("test");
    jtp = new JTabbedPane();
    lbl1 = new JLabel("label1");
    jp1 = new JPanel();
    jp1.add(lbl1);
    lbl2 = new JLabel("label2");
    jp2 = new JPanel();
    jp2.add(lbl2);
    c = jf.getContentPane();
    jtp.addTab("label1" ,null,jp1,"label1");
    jtp.addTab("label2",jp2);
    c.add(jtp);
    }

    public void display()
    {
    jf.pack();
    jf.setVisible(true);
    }

    public static void main(String args[])
    {
    SSTab t = new SSTab();
    t.display();
    }

    }