Java JTextComponent Column setCaretPosition(JTextComponent target, int line, int column)

Here you can find the source of setCaretPosition(JTextComponent target, int line, int column)

Description

Sets the caret position of the given target to the given line and column

License

Apache License

Parameter

Parameter Description
target a parameter
line the first being 1
column the first being 1

Declaration

public static void setCaretPosition(JTextComponent target, int line, int column) 

Method Source Code

//package com.java2s;
/*/*from  www  .j  a  va2 s  .  co  m*/
 * Copyright 2008 Ayman Al-Sairafi ayman.alsairafi@gmail.com
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License 
 *       at http://www.apache.org/licenses/LICENSE-2.0 
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 * See the License for the specific language governing permissions and 
 * limitations under the License.  
 */

import java.awt.Point;

import javax.swing.text.JTextComponent;

public class Main {
    /**
     * Sets the caret position of the given target to the given line and column
     * @param target
     * @param line the first being 1
     * @param column the first being 1
     */
    public static void setCaretPosition(JTextComponent target, int line, int column) {
        int p = getDocumentPosition(target, line, column);
        target.setCaretPosition(p);
    }

    /**
     * Get the closest position within the document of the component that
     * has given line and column.
     * @param editor
     * @param line the first being 1
     * @param column the first being 1
     * @return the closest positon for the text component at given line and
     * column
     */
    public static int getDocumentPosition(JTextComponent editor, int line, int column) {
        int lineHeight = editor.getFontMetrics(editor.getFont()).getHeight();
        int charWidth = editor.getFontMetrics(editor.getFont()).charWidth('m');
        int y = line * lineHeight;
        int x = column * charWidth;
        Point pt = new Point(x, y);
        int pos = editor.viewToModel(pt);
        return pos;
    }
}

Related

  1. getColumn(int pos, JTextComponent editor)
  2. getColumn(JTextComponent editor, int pos)
  3. getColumnAtPosition(JTextComponent editor, int caretPosition)
  4. getColumnNumber(JTextComponent editor, int pos)
  5. getDocumentPosition(JTextComponent editor, int line, int column)