<html>
<body>
<script language="javaScript">function logCart(obj)
{
   if (obj.createTextRange)
   obj.logPos = document.selection.createRange().duplicate();
}function insertAtCaret (objit, text) 
{
    if (objit.logPos && objit.createTextRange) 
    {
       var logPos = objit.logPos;
       logPos.text = logPos.text.charAt(logPos.text.length - 1) == ' ' ? text + ' ' : text;
    }
    else
    {
         objit.value  = text;
        }
}function insertText()
{
    if (window.event.keyCode == 9)
    {       var sv = "插入字符";
       
       var t = document.getElementById('txtArea');
       
       if (t.logPos)
       {
          insertAtCaret(t, sv);
       }
       else
       {
          sv = "\n" + sv;
          t.value += sv;
       }
        return false;
   }
   else
   {
        return true;
   }
}
</script>
输入时按tab键,将在光标处加入一个要加入的字符串,使用了记录位置.
<textarea rows="10" name="Log" cols="80" id="txtArea" 
               ONSELECT="logCart(this);"
               ONCLICK="logCart(this);"
               ONKEYUP="logCart(this);"
               ONKEYDOWN="return insertText();" >
ffffffffffffffffffffffffffffffffffddddddddddddddddddddddddddddddddddssssssssssssssssssssssssssssssssss
</textarea>
</body>
</html>

解决方案 »

  1.   

    JTextArea aTextArea = new JTextArea()
    int pos = aTextArea.getCaretPosition()
    aTextArea.insert("a string", pos)
      

  2.   

    这个例子也许对你很有帮助
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class TextAreaTest 
    {
       public static void main(String[] args)
       {  
          TextAreaFrame frame = new TextAreaFrame();
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.show();
       }
    }/**
       A frame with a text area and buttons for text editing
    */
    class TextAreaFrame extends JFrame
    {  
       public TextAreaFrame()
       {  
          setTitle("TextAreaTest");
          setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);      Container contentPane = getContentPane();
                buttonPanel = new JPanel();      // add button to append text into the text area      JButton insertButton = new JButton("Insert");
          
          buttonPanel.add(insertButton);
          insertButton.addActionListener(new
             ActionListener()
             {
                public void actionPerformed(ActionEvent event)
                {
                   textArea.append("The quick brown fox "
                      + "jumps over the lazy dog. ");
                }
             });      // add button to turn line wrapping on and off      wrapButton = new JButton("Wrap");
          buttonPanel.add(wrapButton);
          wrapButton.addActionListener(new
             ActionListener()
             {
                public void actionPerformed(ActionEvent evt)
                {  
                   boolean wrap = !textArea.getLineWrap();
                   textArea.setLineWrap(wrap);
                   scrollPane.validate();
                   wrapButton.setText(wrap ? "No Wrap" : "Wrap");
                }
             });
        
          contentPane.add(buttonPanel, BorderLayout.SOUTH);      // add a text area with scroll bars
          
          textArea = new JTextArea(8, 40);
          
          textArea=new JTextArea("This is initial text");
          
          scrollPane = new JScrollPane(textArea);      contentPane.add(scrollPane, BorderLayout.CENTER);
       }   public static final int DEFAULT_WIDTH = 300;
       public static final int DEFAULT_HEIGHT = 300;     private JTextArea textArea;
       private JScrollPane scrollPane;
       private JPanel buttonPanel;
       private JButton wrapButton;
    }
      

  3.   

    在我的程序中,有一个主窗体里面有一个textarea,单击主窗体中的一个菜单项后弹出一个frame,里面有一个jtable,我想在frame中将jtable中的当前行的值追加到主窗体中的textarea中请问应该如何实现???