public static void goToLineColumm(JTextArea component, int line, int column) { Element root = component.getDocument().getDefaultRootElement(); int offset = 0; int lineStart; if (line < component.getLineCount()) { lineStart = root.getElement(line - 1).getStartOffset(); offset = lineStart + (column - 1); } else { // in case we're asking to jump to a line that doesn't exist lineStart = root.getElement(component.getLineCount() - 1).getStartOffset(); offset = lineStart; } component.setCaretPosition(offset); }
/** * Prints messages to text area * * @param message the text to be printed */ @Override public void displayMessage(String message) { if (message.length() == 0) return; // doesn't display empty lines if (textArea.getLineCount() >= 10) { // cleans the text area every 10 lines textArea.setText(""); } textArea.append(message); textArea.append("\n"); }
private void highlightError(int index) { String message = (String) messages.elementAt(index); int i = message.indexOf(":"); if ((i != -1) && (i < 10)) { try { int lineNumber = Integer.parseInt(message.substring(0, i).trim()) - 1; if (lineNumber < sourceArea.getLineCount()) { int start = sourceArea.getLineStartOffset(lineNumber); int end = sourceArea.getLineEndOffset(lineNumber); sourceArea.requestFocus(); sourceArea.setSelectionStart(start); sourceArea.setSelectionEnd(end - 1); } } catch (Exception ex) { ex.printStackTrace(); } } }