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");
 }
Exemple #3
0
  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();
      }
    }
  }