在同一个容器中swing,awt混用是会出问题的
一般应避免

解决方案 »

  1.   

    在JDK1.4好象不存在这个问题,为什么?我又必须使用JDK1.3.X
      

  2.   

    import java.io.*;
    import java.awt.*;
    import javax.swing.*;public class T
    {
    public static void main(String args[])
    {
    JFrame frm = new JFrame();
    frm.setSize(400,300);
    JMenuBar menuBar = new JMenuBar();

    JMenu menu = new JMenu("File");
    JMenuItem item;
    item = new JMenuItem("New");
    menu.add(item);
    item = new JMenuItem("Open");
    menu.add(item);
    item = new JMenuItem("Save");
    menu.add(item);
    item = new JMenuItem("Close");
    menu.add(item);
    item = new JMenuItem("Quit");
    menu.add(item);
    menuBar.add(menu);
    frm.setJMenuBar(menuBar);

    JPanel swingPanel = new JPanel();
    swingPanel.add(new Panel());

    Panel awtPanel = new Panel();
    awtPanel.add(new Button("Button"));

    swingPanel.add(awtPanel);

    frm.getContentPane().add(swingPanel);

    frm.show();
    }
    }
      

  3.   

    将 AWT 放到 Swing 容器中
      

  4.   

    1.3 , 1.4 我都试过了, 至少 Menu 不再被挡住
      

  5.   

    因为是AWT重量型容器,而大多数SWING是轻量型容器,所心以会盖住下面的.
    详细的请参考<<JAVA图形开发,卷II,SWING>>,名字记的不太准.很厚的一本书.
      

  6.   

    很感谢,Menu也许没问题,但还是解决不了其他的AWT问题
      

  7.   

    重量型容器是调用OS的Native Method, 而轻量的是利用自己的Frame Buffer 操作后
    再调Native Method, 所以...
    好象这些容器有个什么什么属性, 只要设一下,可能会对你的问题有帮助.
    不过我记不太清了. 自己的查书吧.
      

  8.   

    想知道
    为什么一定要用AWT呢?
    能说说看吗?
      

  9.   

    这里有一个原则,你可以参考一下:
        轻量组件不显示在他们自己的窗口中,而是显示在他们的重量容器的窗口中。
        如果容器是同类的(即他包含的组件都是轻量的活都是重量组件),则按组件被添加到容器的顺序来确定他的顺序层次。
        如果是异类的,比较麻烦。你可以这样做,把相同的分类的轻量组件添加到一个重量容器中,最后布局窗口上的这些重量容器就可以了。
        至于你说的菜单的问题,就是这个原因,解决办法这样。
        调用JPopupMenu.setDefaultLightWeightPopupEnabled( false );就可以解决了,他是JPopupMenu的一个静态方法,其中参数的意义就是把弹出式菜单实例化为轻量的还是重量的,显然了,false的时候为重量的,true的时候为轻量的。
        有个条件,你最好在系统初始化或者初始化容器上的东西的最开始调用了,否则有可能没有效果,最保险就是在最开始的时候调用。
        好了,我就知道这么多了,希望能帮助你解决了你的问题
      

  10.   

    这个组件的Z order顺序有关
      

  11.   

    awt大部分是重量组件,肯定会压在swing的轻量组件上面的,你只用swing组件就可以了
      

  12.   

    同意 zombieLi(其实呀,呵呵,笑笑而已)
      

  13.   

    yuanmeng163其实什么?还有高招?