问题来源:我想把JTextArea里面的内容提取出来打印,但要保持输入的样式不变。先是用getText()取出来放在一个String 里面,然后再打印出来,但是由于JTextArea自动换行的时候没有自动加换行符(本人推测),所以打印出来的页面根本没有按要求换行,我看了javaAPI,没有找到相关方法,要自己写!但试了一个上午也没有实现!可能是小弟太笨,各位高手能提供点意见吗?谢谢!

解决方案 »

  1.   

    我写了个测试程序: import java.awt.*; 
    import javax.swing.*; public class TestPrint extends JPanel { 
    JTextArea dd = new JTextArea(10,10); public TestPrint(){ 
    this.setLayout(new BorderLayout()); 
    dd.setPreferredSize(new Dimension(600, 300)); 
    add(dd, BorderLayout.SOUTH); 

    public void paintComponent(Graphics g){ 
    super.paintComponent(g); 
    Graphics2D g2 = (Graphics2D)g; 
    drawTextArea(g2,dd); } 
    public void drawTextArea(Graphics2D g2,JTextArea area) 

    g2.drawString(area.getText(),120,120); 

    public static void main(String[] args) { try{ 
    UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); 
    }catch(Exception e){ } 
    JFrame frame = new JFrame(); 
    TestPrint tt = new TestPrint(); 
    frame.setBounds(100, 100, 500, 500); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.getContentPane().add(tt); 
    frame.setVisible(true); 
    } } 
    就是要自己写drawTextArea方法实现原样输出功能 
    这个测试程序很简单,没有即时刷新,要在上面面板上显示下面文本域输入的内容得把JPanel放大或放下活动下才可!大家帮我看看怎么写drawTextArea方法才能实现原样输出功能谢谢哈
      

  2.   

    你是要获得内容还是要把整个JTextArea的样式打印出来。
    如果只是获得内容的话,直接提取JtextArea的信息,然后保存到一个临时文件中,在提取一行信息保存到临时文件的时候,加一个换行符,依此类推,然后再将临时文件的内容打印出来就可以了。