rt

解决方案 »

  1.   

    插入点是光标位置,你只需把光标位置移到末尾再inserComponent就可以了。
      

  2.   

    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.BorderFactory;
    import javax.swing.Icon;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    import javax.swing.JTextPane;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.Document;public class JTextPaneTest extends JFrame { JTextPane textPane = null; JTextField field = new JTextField(20); Icon image = null; public JTextPaneTest() {
    image = new ImageIcon(this.getClass().getResource("res/back.jpg"));
    textPane = new JTextPane();
    textPane.setBorder(BorderFactory.createEtchedBorder());
    textPane.insertComponent(new JLabel(image));
    textPane.setCaretPosition(textPane.getDocument().getLength());
    textPane.insertComponent(field); textPane.setEditable(false);
    textPane.setPreferredSize(new Dimension(250, 25));
    field.setBorder(BorderFactory.createEmptyBorder());
    field.setPreferredSize(new Dimension(250, 25));
    } public void gui() {
    Document doc = field.getDocument();
    try {
    doc.insertString(0, "I want to thank you for your clear response",
    null);
    } catch (BadLocationException e) {
    e.printStackTrace();
    }
    Container cp = getContentPane();
    cp.setLayout(new FlowLayout(FlowLayout.LEFT));
    cp.add(textPane);
    JButton b = new JButton("test");
    b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
    try {
    field.getDocument().insertString(
    field.getDocument().getLength(), "test", null);
    field.setCaretPosition(field.getDocument().getLength());
    } catch (BadLocationException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
    } });
    cp.add(b);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(300, 100);
    setVisible(true);
    } public static void main(String[] args) {
    JTextPaneTest test = new JTextPaneTest();
    test.gui();
    }
    }