先把tl加入splitePanel然后在菜单项事件中setVisible(true);

解决方案 »

  1.   

    使用setVisible(true);这个方法,为什么非得拉动一下拆分窗上的分隔条才能将JTable t1 显示出来呢???import javax.swing.*;
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    public class no4 extends JApplet implements ActionListener{             static int V=JSplitPane.VERTICAL_SPLIT;              JTable t1=new JTable(4,5);             Container c1=getContentPane();  //设定用于菜单的容器面板             JPanel p1=new JPanel();             JPanel p2=new JPanel();           JSplitPane sp1=new JSplitPane(V,true,p1,p2); //定义拆分窗口             JMenuBar jb1=new JMenuBar();             JMenu j1=new JMenu("菜单1");             JMenuItem i1=new JMenuItem("菜单1子项");         public void init() {              j1.add(i1);             jb1.add(j1);             p1.add(jb1,BorderLayout.NORTH);             c1.add(sp1);             i1.addActionListener(this);   }
            
                 public void actionPerformed(ActionEvent evt)                { if(evt.getSource() instanceof JMenuItem)
                     if(evt.getSource()==i1)
                     
                       { p2.add(t1);setVisible(true);}
                   }                                                             }
      

  2.   

    setVisible之后记得刷新重画一下,使用容器的invalide(),再repaint()
      

  3.   

    大哥能不能具体一些呀???
    invalide() 我手中的工具书上查不到,不知其含义,用法等等谢谢!
      

  4.   

    p2改成JScrollPane;
    JScrollPane  p2=new  JScrollPane();  事件里这么写:
    p2.getViewport().setView(t1);