学号     姓名    年龄    性别      备注
   001       A       18      男       .....
   001       B       18      女       .....
    .
    .
    .
    .
      我想实现上述格式的图片,但是有以下两个问题
   1.图片大小无法确定
   2.字段内的内容无法有效的换行
   
   急!本人在线等
  
   
   

解决方案 »

  1.   

    JTable?重载绘制器,用JTextArea实现TableCellRenderer,然后根据JTextArea自己计算出的默认高度,得到行高。重设置了所有行高以后用JTable的paint方法绘制出图片
      

  2.   

    用 itext生成 pdftable  
    如果用bufferedimage 的outputstream直接接收的话可能有问题 
    但是生成pdf以后在把图片搞出来 肯定可以。我以前做过不用pdf 直接打印jtable  要转行的那种  效率太低了 要计算每个str在当前graphic环境下的像素长度 
      

  3.   

    JTextArea有个属性,可以控制文字自动换行。然后你设置了文字以后,JTextArea的getPreferredSize就会返回它自己计算出来的默认大小。它不会改变宽度,但会改变高度。
    所以   JTextArea labelText= new JTextArea();
       labelText.setSize(250, 95);
       labelText.setLineWrap(true);
       labelText.setText("xxxx");
       Dimension size = labelText.getPreferredSize();这个就能获得自动换行的高度.遍历每一行,然后得到该行最大单元格高,设置给该行.
    等JTable所有属性设置完了。用BufferImage产生的Graphics去掉用table的paint方法,然后BufferImage就有图片了。剩下的就是对这个图片处理的问题了。还一种方法就是自己绘制,然后用同样的算法计算行高,也可以实现。