import  java.awt.*;  
import  java.awt.event.*;  
import  javax.swing.*;  
 
public  class  MenuMain  extends  JFrame{  
           public  MenuMain(){  
                   setSize(600,480);  
                   setTitle("菜单程序");  
                   new  setMyMenu(this);//加入菜单  
                             addWindowListener(new  WindowAdapter()  {  
                           public  void  windowClosing(WindowEvent  e)  {  
                                       System.exit(0);  //退出应用程序  
                               }  
                 });  
                       setVisible(true);  
                       }  
 
           public  static  void  main(String[]  args){  
                   new  MenuMain();  
                       }  
}  
             
 
 
class  setMyMenu{  
           MenuMain  menumain;  
           private  String  jopPut="这是我的一个测试程序,\n希望你能喜欢它!";  
           public  setMyMenu(MenuMain  menumain){  
                       this.menumain=menumain;  
                       JMenuBar  Mb=new  JMenuBar();  
                       JMenu  MuFile=new  JMenu("文件");  
                       JMenu  MuEdit=new  JMenu("编辑");  
                       JMenu  MuHelp=new  JMenu("帮助");  
                       JMenuItem  MenuAdd=new  JMenuItem("增加一项");  
                       JMenuItem  MenuAbout=new  JMenuItem("关于…");  
                       JMenuItem  MenuExit=new  JMenuItem("退出");  
                       MenuAdd.addActionListener(new  ActionListener(){  
                                       public  void  actionPerformed(ActionEvent  evt)  {  
                                           MenuAddActionPerformed(evt);  
                                                   }  
                                   });  
                       MenuExit.addActionListener(new  ActionListener(){  
                                       public  void  actionPerformed(ActionEvent  evt)  {  
                                                   MenuExitActionPerformed(evt);  
                                                   }  
                                   });  
                       MenuAbout.addActionListener(new  ActionListener(){  
                                       public  void  actionPerformed(ActionEvent  evt)  {  
                                                   MenuAboutActionPerformed(evt);  
                                                   }  
                                   });  
                       MuFile.add(MenuExit);  
                       MuEdit.add(MenuAdd);  
                       MuHelp.add(MenuAbout);  
                       Mb.add(MuFile);  
                       Mb.add(MuEdit);  
                       Mb.add(MuHelp);  
                       menumain.setJMenuBar(Mb);  
           }  
                         
               private  void  MenuAddActionPerformed(ActionEvent  evt)  {  
               setUICom  setuicom=new  setUICom();  
               setuicom.addButton("你好",menumain);  
       }  
           private  void  MenuExitActionPerformed(ActionEvent  evt)  {  
               System.exit(  0  );  
       }  
           private  void  MenuAboutActionPerformed(ActionEvent  evt)  {  
             JOptionPane.showMessageDialog(menumain  ,jopPut  ,  "关于这个程序",  JOptionPane.INFORMATION_MESSAGE  );  
       }              
}  
 
 
 
class  setUICom{  
           void  addButton(String  str,JFrame  menumain){//这里面的内容好象不起作用  
                       JButton  jb1=new  JButton(str);  
                       menumain.getContentPane().add(jb1,BorderLayout.NORTH);  
                   }  
}  
 
 
我的程序执行的时候,点"增加一项",按我的设想,因当执行setUICom类的addButton方法。事实上也执行了,因为我加了一个println()在最后,已经显示出来,可是为什么我的frame里没有出现"jb1"呢?  
我把addButton里一段直接放到MenuMain  里,就能出现那个button。但我在菜单选增加一项就是不行。  

解决方案 »

  1.   

    private void MenuAddActionPerformed(ActionEvent evt) {
            setUICom setuicom=new setUICom();
            setuicom.addButton("你好",menumain);
        }
    -->
    private void MenuAddActionPerformed(ActionEvent evt) {
            setUICom setuicom=new setUICom();
            setuicom.addButton("你好",menumain);
            bean8.validate();
        }
      

  2.   

    对于IE低版本无法自动调整textarea的显示高度
    最好的解决办法是升级到IE6
      

  3.   

    sorry:
    bean8.validate();
    -->
    MenuMain.validate();
    意思是使操作立即生效