Java tutorial
//package com.java2s; /* * The contents of this file are subject to the Mozilla Public License * Version 1.1 (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.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations * under the License. * * The Original Code is iSQL-Viewer, A Mutli-Platform Database Tool. * * The Initial Developer of the Original Code is iSQL-Viewer, A Mutli-Platform Database Tool. * Portions created by Mark A. Kobold are Copyright (C) 2000-2007. All Rights Reserved. * * Contributor(s): * Mark A. Kobold [mkobold <at> isqlviewer <dot> com]. * * If you didn't download this code from the following link, you should check * if you aren't using an obsolete version: http://www.isqlviewer.com */ import javax.swing.text.BadLocationException; import javax.swing.text.Document; import javax.swing.text.Element; import javax.swing.text.JTextComponent; public class Main { /** * Method getCaretRow. * * @param idx * @param comp * @return int * @throws Exception */ public static int getCaretRow(int idx, JTextComponent comp) throws BadLocationException { return getLineOfOffset(idx, comp.getDocument()); } protected static int getLineOfOffset(int offset, Document doc) throws BadLocationException { if (offset < 0 || doc == null) { throw new BadLocationException("", -1); } else if (offset > doc.getLength()) { throw new BadLocationException("", doc.getLength() + 1); } else { Element map = doc.getDefaultRootElement(); return map.getElementIndex(offset); } } }