to new_zero(Swing):JDK的Demo我也看过,对英文的排版是足够了,但是对于中文或者阿拉伯文之类比较特殊的排版方式是没办法实现的,只有自己重写TextLayout
to cool_li(G.T.O):说这种教训人的话之前先称称自己的分量,你给我找一本深入到GlyphVector布局算法的书出来我就服你
这个问题我已经钻研了三四天了,还没有明确的思路,希望大家帮忙

解决方案 »

  1.   

    最后顶一次,看样子CSDN是"菜鸟的论坛"此言不虚
      

  2.   

    第一个和第二个问题,你可以看看我的这段代码。
      private static final String display = "JAVA";
      public void paint(Graphics g) {
        Graphics2D g2d = (Graphics2D) g;
        Font font = new Font( "宋体", Font.PLAIN, 15 );
        GlyphVector gv = font.createGlyphVector( g2d.getFontRenderContext(), display );
        Paint transPaint = new Color( 0, 0, 0 );
        //控制旋转的角度
        AffineTransform transForm = AffineTransform.getShearInstance( 0.5, 0.0 );
        g2d.translate( 65, 100 );
        g2d.setStroke( new BasicStroke( 1.0f ) );
        for ( int i = 0; i < display.length(); i++ ) {
          Shape shape = gv.getGlyphOutline( i );
          g2d.setPaint( transPaint );
          g2d.fill( transForm.createTransformedShape( shape ) );
          g2d.draw( transForm.createTransformedShape( shape ) );
        }
      }
    至于行间距控制比较简单了,你自己看吧
    OK, good luck