public void paint(Graphics g) {
    g.setColor(new Color(255,200,200));
    g.fillRect(0,0,this.getWidth(),this.getHeight());
    g.setColor(Color.black);
    g.drawString("background",100,100);
  }

解决方案 »

  1.   

    beyond_xiruo() 你的程序是将整个背景都绘制了颜色,而我想要的效果是为字符串加入背景色,我现在需要知道字符串的长度,就是字符串占的长度,这样就可以用你的方法了。但我想知道Java中有没有直接将字符串绘制背景色的函数!谢谢!
      

  2.   

    先获取字符串的长度和高度,然后再上背景,获取字符串长和高的方法如下:
      public void paint(Graphics g) {
        String s="backgound";
        java.awt.FontMetrics fm=g.getFontMetrics();
        int height=fm.getHeight();
        int width=fm.stringWidth(s);
        g.setColor(new Color(255,200,200));
        g.fillRect(100,100-height,width,height);
        g.setColor(Color.black);
        g.drawString(s,100,100);
      }
      

  3.   

    多谢beyond_xiruo()我以给你结分!再次感谢!
      

  4.   

    //Applet-使用g.drawString写有背景的文字.txt
    //:HelloWorldApplet.javaimport java.applet.Applet;
    import java.awt.Graphics;
    import java.awt.Color;public class HelloWorldApplet extends Applet {
       public void paint(Graphics g) {
        g.setColor(new Color(255,200,200));
        
        String temp="中国我爱你";
        //String temp="I love china";
        char[] dst=new char[temp.length()];
        temp.getChars(0,temp.length()-1,dst,0);
        
        int x,y;
        x=100;
        y=100;
        //需要获得字符串的长度、高度来画底色
        g.fillRect(x,y,g.getFontMetrics().getLeading()+g.getFontMetrics().charsWidth(dst,0,dst.length),g.getFontMetrics().getHeight());
        g.setColor(Color.black);
        g.drawString(temp,x,y+g.getFontMetrics().getAscent());                
      }
    }
      

  5.   

    又做了点改进。显示更方便、准确些
    //Applet-使用g.drawString写有背景的文字.txt
    //:HelloWorldApplet.javaimport java.applet.Applet;
    import java.awt.Graphics;
    import java.awt.Color;public class HelloWorldApplet extends Applet {
       public void paint(Graphics g) {
        g.setColor(new Color(255,200,200));
        
        //String temp="中国我爱你";
        String temp="I love china";
        
        int x,y;
        x=100;
        y=100;
        //获得宽、高画底色
        g.fillRect(x,y,g.getFontMetrics().stringWidth(temp),g.getFontMetrics().getHeight());
        g.setColor(Color.black);
        //正常显示字符串,刚好在底色框内
        g.drawString(temp,x,y+g.getFontMetrics().getAscent());         
      }
    }