我在菜单栏下放置了一个List组件,但是当菜单展开时,一部分却被List遮盖住了咋整啊?。。

解决方案 »

  1.   

    你的菜单使用 JMenu ?是AWT还是Swing?将 List 换成 JList。
      

  2.   

    菜单使用 的是JMenu
    List 是AWT的List可是我不想换,有没有什么方法可以纠正?
      

  3.   

    混用AWT和Swing组件就这样,两者的层序不同,AWT组件显示在上面。
      

  4.   

    那应该怎么改呢?。。 我不想用JList,是因为我的程序中,用了一些List的函数,而JList中又没有。这样一改太麻烦我用了下setComponentZOrder这个函数,比如:JMenu fileMenu=new JMenu("文件(F)");
    fileMenu.setComponentZOrder(list,0);//list是List的变量
    这样用是解决了覆盖的问题,但同时又出现了另一个问题,就是List中的列表项全都显示不出来了
      

  5.   

    你用的jdk/jre是那个版本?我记得java6 某个update里改善了AWT/Swing混用的问题。我在6u26里试了一下,正常显示了。(好久没用过AWT了)。你可以试试JPopupMenu.setDefaultLightWeightPopupEnabled(false);
    下拉菜单其实就是一个 JPopupMenu