为什么我的文件菜单的下拉项总是被按钮盖住!如何解决这问题么呢!谢谢高手指点!程序在下面:import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*; class MyFrame extends JFrame{
 
  Button bt = new Button("问题在这");
  
  //菜单条
  JMenuBar jmb = new JMenuBar();
  
  //主菜单
  JMenu jm1 = new JMenu("文件");
  JMenu jm2 = new JMenu("编辑");
  JMenu jm3 = new JMenu("窗口");
  
  //菜单
  JMenuItem jmi1 = new JMenuItem("oper");
  JMenuItem jmi2 = new JMenuItem("close");
  JMenuItem jmi3 = new JMenuItem("add");
  JMenuItem jmi4 = new JMenuItem("remove");
  JMenuItem jmi5 = new JMenuItem("?");
  
  public MyFrame(){
  
    jm1.add(jmi1);
    jm1.add(jmi2);
    
    jm2.add(jmi3);
    jm2.add(jmi4);
    
    jm3.add(jmi5);
    
    jmb.add(jm1);
    jmb.add(jm2);
    jmb.add(jm3);
    
    this.setJMenuBar(jmb);
    this.getContentPane().add(bt,BorderLayout.WEST);
    
    this.setSize(200,300);
    this.setVisible(true);
   }
  
   public static void main(String []args){
  
    new MyFrame();
  
   }
 
 }

解决方案 »

  1.   

    如果把this.setSize(200,300);换成this.pack();
    就不会出现你的这个问题这是pack方法
    public void pack() {
    Container parent = this.parent;
    if (parent != null && parent.getPeer() == null) {
        parent.addNotify();
    }
    if (peer == null) {
        addNotify();
    }
    setSize(getPreferredSize());        if(isFirstPack == true) {
                isPacked = true;
                isFirstPack = false;
            } validate();
        }这是setSize()的代码:
    public void setSize(int width, int height) {
    resize(width, height);
        }问题出在哪里我也不知道
    那你最好还是用pack()
    不要用setSize()了
      

  2.   

    楼上的!先谢谢了!但是用怕pack()的方法就答不到界面要求了啊;窗体改变的话有是老问题了!这个问题我都郁闷死了!不行的话只有给界面了!55555555
      

  3.   

    把按钮java.awt.Button换成javax.swing.JButton。
      

  4.   

    或者使用Frame的方法。
    this.add(bt, BorderLayout.WEST);
      

  5.   

    把Button bt = new Button("问题在这");中的Button改成JButton一切问题都解决了