setSize试试,比较懒没看代码。

解决方案 »

  1.   

    把最后的改为,这么画当然要重叠了
    for (int i=0;i<s.length;i++)
        {
          g.drawString("dt["+i+"]="+dt[i],10,10*i);
        }
      

  2.   

    主要是这句g.drawString("dt["+i+"]="+dt[i],10,10);
    把间隔适当放大,其实你完全可以得到字符串的长和高,如下:
    String str="beyond_xiruo";
    Font font;
    if(this.getFont()==null)
    font = new Font("Times Roman", Font.PLAIN, 20);
    else
    font=this.getFont();
    FontMetrics fm=this.getFontMetrics(font);
    System.out.print(fm.stringWidth(str)+"*");
    System.out.print(fm.getHeight());