too long ……
up it for u

解决方案 »

  1.   

    如果你用awt,它会覆盖swing。
      

  2.   

    No AWT. You can copy source to try. ^-^Waiting............................
      

  3.   

    请问你这个问题解决没有?我刚刚看了一下你的代码,是会出现像你说的panel文字覆盖菜单文字的现象。我把你这一段代码去掉以后就正常了:
       public MyPanel()
        {
            new javax.swing.Timer( 100 , new ActionListener()
            {
                public void actionPerformed( java.awt.event.ActionEvent e)
                {
                    timerOnTime();
                }
            }).start();
        }
        public void timerOnTime()
        {
            Graphics g=this.getGraphics();
            //paintComponent( g );
            Graphics2D g2=(Graphics2D)g;
            
            g2.drawString( "This is an extend panel." , 0 , g2.getFontMetrics().getHeight() );
            g.dispose();
        }Hope this helps :)
      

  4.   

    谢谢!首先非常感谢你的参与!
    贴了这么多天终于有回音啦,我好感动。 (:_O 删掉是不可以的! 我为的就是测试getGraphics()的用法,在早期java中,用的是AWT控件,AWT控件是重量级的,所以菜单永远都在最上面,上面的程序是没问题的。但Swing控件是轻量级的,它上面的控件是自画的,如果重叠,可以同通过setComposite和阿AlphaComposite制定重叠。我的程序绕过paint()阶段,直接得到图形设备在上面作图,所以我的菜单....... 。当然,将所有更新放到paint中是可能的,但每次调用repaint()代价太大了,我想应该有某种方法可以在Panel上直接作图,上面的方法有问题,你能告诉我用什么好的方法吗?
      

  5.   

    I am sorry I can't help, I am just another Java beginner, sorry.