Java - 将JTextArea中的字符串转换为图像

Tim*_*Tim 0 java string image

我有一个字符串显示在我的程序中,但我想知道如何将字符串的输出转换为与原始字符串相同的图像.不知道是否可以这样做.

我希望输出完全是JTextArea.这是可能的,如果可以的话,我应该研究什么?

Mad*_*mer 5

assylias打败了我,但看到我离我很近,我还以为我会发布它

public class TestFrame extends JFrame {

    private JTextArea text;

    public TestFrame() {

        setDefaultCloseOperation(EXIT_ON_CLOSE);

        setTitle("Text");

        setLayout(new BorderLayout());
        text = new JTextArea();
        add(new JScrollPane(text));

        JButton btnPrint = new JButton("Print");
        add(btnPrint, BorderLayout.SOUTH);

        btnPrint.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {

                BufferedImage img = new BufferedImage(text.getWidth(), text.getHeight(), BufferedImage.TYPE_INT_RGB);
                Graphics2D g2d = img.createGraphics();
                text.printAll(g2d);
                g2d.dispose();

                try {
                    ImageIO.write(img, "png", new File("StringToGraphics.png"));
                } catch (IOException ex) {
                    ex.printStackTrace();
                }

            }
        });

        text.setWrapStyleWord(true);
        text.setColumns(15);
        text.setLineWrap(true);
        text.setText("I have a string which is displayed in my program, but I'm wondering how I would convert the output of the string into an image identical to the original string. No idea if this can be done.\n\nI would like the output to be exactly what is is the JTextArea. Is this possible and if so what should I look into?");

        setSize(200, 300);

        setLocationRelativeTo(null);
        setVisible(true);

    }

}
Run Code Online (Sandbox Code Playgroud)

由此

Frmae

对此

结果