當前位置: 首頁>>代碼示例>>Java>>正文


Java JEditorPane.getCaret方法代碼示例

本文整理匯總了Java中javax.swing.JEditorPane.getCaret方法的典型用法代碼示例。如果您正苦於以下問題:Java JEditorPane.getCaret方法的具體用法?Java JEditorPane.getCaret怎麽用?Java JEditorPane.getCaret使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在javax.swing.JEditorPane的用法示例。


在下文中一共展示了JEditorPane.getCaret方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: getSelectedIdentifier

import javax.swing.JEditorPane; //導入方法依賴的package包/類
/**
 * Returns identifier currently selected in editor or <code>null</code>.
 *
 * @return identifier currently selected in editor or <code>null</code>
 */
@Override
public String getSelectedIdentifier () {
    JEditorPane ep = contextDispatcher.getCurrentEditor ();
    if (ep == null) {
        return null;
    }
    Caret caret = ep.getCaret();
    if (caret == null) {
        // No caret => no selected text
        return null;
    }
    String s = ep.getSelectedText ();
    if (s == null) {
        return null;
    }
    if (Utilities.isJavaIdentifier (s)) {
        return s;
    }
    return null;
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:26,代碼來源:EditorContextImpl.java

示例2: setEditable

import javax.swing.JEditorPane; //導入方法依賴的package包/類
public void setEditable(boolean b) {
    JEditorPane editor = editor();
    if (editor.isEditable() == b) return;
    
    editor.setEditable(b);

    if (b) {
        if (lastBgColor != null) editor.setBackground(lastBgColor);
        if (lastCaret != null) editor.setCaret(lastCaret);
    } else {
        lastBgColor = editor.getBackground();
        lastCaret = editor.getCaret();
        editor.setBackground(disabledBgColor);
        editor.setCaret(nullCaret);
    }
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:17,代碼來源:OQLEditor.java

示例3: getCurrentLineNumber

import javax.swing.JEditorPane; //導入方法依賴的package包/類
/**
 * Get the line number of the caret in the current editor.
 * @return the line number or <code>-1</code> when there is no current editor.
 */
public int getCurrentLineNumber() {
    EditorCookie e = getCurrentEditorCookie ();
    if (e == null) return -1;
    JEditorPane ep = getCurrentEditor ();
    if (ep == null) return -1;
    StyledDocument d = e.getDocument ();
    if (d == null) return -1;
    Caret caret = ep.getCaret ();
    if (caret == null) return -1;
    int ln = NbDocument.findLineNumber (
        d,
        caret.getDot ()
    );
    return ln + 1;
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:20,代碼來源:EditorContextDispatcher.java

示例4: getMostRecentLineNumber

import javax.swing.JEditorPane; //導入方法依賴的package包/類
/**
 * Get the line number of the caret in the most recent editor.
 * This returns the current line number in the current editor if there's one,
 * or a line number of the caret in the editor, that was most recently active.
 * @return the line number or <code>-1</code> when there was no recent active editor.
 */
public int getMostRecentLineNumber() {
    EditorCookie e = getMostRecentEditorCookie ();
    if (e == null) return -1;
    JEditorPane ep = getMostRecentEditor ();
    if (ep == null) return -1;
    StyledDocument d = e.getDocument ();
    if (d == null) return -1;
    Caret caret = ep.getCaret ();
    if (caret == null) return -1;
    int ln = NbDocument.findLineNumber (
        d,
        caret.getDot ()
    );
    return ln + 1;
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:22,代碼來源:EditorContextDispatcher.java

示例5: getMostRecentLine

import javax.swing.JEditorPane; //導入方法依賴的package包/類
/**
 * Get the line of the caret in the most recent editor.
 * This returns the current line in the current editor if there's one,
 * or a line of the caret in the editor, that was most recently active.
 * @return the line or <code>null</code> when there was no recent active editor.
 */
public Line getMostRecentLine() {
    EditorCookie e = getMostRecentEditorCookie ();
    if (e == null) return null;
    JEditorPane ep = getMostRecentEditor ();
    if (ep == null) return null;
    StyledDocument d = e.getDocument ();
    if (d == null) return null;
    Caret caret = ep.getCaret ();
    if (caret == null) return null;
    int lineNumber = NbDocument.findLineNumber(d, caret.getDot());
    Line.Set lineSet = e.getLineSet();
    try {
        return lineSet.getCurrent(lineNumber);
    } catch (IndexOutOfBoundsException ex) {
        return null;
    }
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:24,代碼來源:EditorContextDispatcher.java

示例6: deleteChar

import javax.swing.JEditorPane; //導入方法依賴的package包/類
protected void deleteChar(String original, String expected) throws Exception {
    String source = original;
    String reformatted = expected;
    Formatter formatter = getFormatter(null);

    int sourcePos = source.indexOf('^');
    assertNotNull(sourcePos);
    source = source.substring(0, sourcePos) + source.substring(sourcePos+1);

    int reformattedPos = reformatted.indexOf('^');
    assertNotNull(reformattedPos);
    reformatted = reformatted.substring(0, reformattedPos) + reformatted.substring(reformattedPos+1);

    JEditorPane ta = getPane(source);
    Caret caret = ta.getCaret();
    caret.setDot(sourcePos);
    BaseDocument doc = (BaseDocument) ta.getDocument();

    if (formatter != null) {
        configureIndenters(doc, formatter, true);
    }

    setupDocumentIndentation(doc, null);

    runKitAction(ta, DefaultEditorKit.deletePrevCharAction, "\n");

    String formatted = doc.getText(0, doc.getLength());
    assertEquals(reformatted, formatted);
    if (reformattedPos != -1) {
        assertEquals(reformattedPos, caret.getDot());
    }
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:33,代碼來源:CslTestBase.java

示例7: deleteWord

import javax.swing.JEditorPane; //導入方法依賴的package包/類
protected void deleteWord(String original, String expected) throws Exception {
    String source = original;
    String reformatted = expected;
    Formatter formatter = getFormatter(null);

    int sourcePos = source.indexOf('^');
    assertNotNull(sourcePos);
    source = source.substring(0, sourcePos) + source.substring(sourcePos+1);

    int reformattedPos = reformatted.indexOf('^');
    assertNotNull(reformattedPos);
    reformatted = reformatted.substring(0, reformattedPos) + reformatted.substring(reformattedPos+1);

    JEditorPane ta = getPane(source);
    Caret caret = ta.getCaret();
    caret.setDot(sourcePos);
    BaseDocument doc = (BaseDocument) ta.getDocument();
    if (formatter != null) {
        configureIndenters(doc, formatter, true);
    }

    setupDocumentIndentation(doc, null);

    runKitAction(ta, BaseKit.removePreviousWordAction, "\n");

    String formatted = doc.getText(0, doc.getLength());
    assertEquals(reformatted, formatted);
    if (reformattedPos != -1) {
        assertEquals(reformattedPos, caret.getDot());
    }

}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:33,代碼來源:CslTestBase.java

示例8: insertNewline

import javax.swing.JEditorPane; //導入方法依賴的package包/類
public void insertNewline(String source, String reformatted, IndentPrefs preferences) throws Exception {
    int sourcePos = source.indexOf('^');
    assertNotNull(sourcePos);
    source = source.substring(0, sourcePos) + source.substring(sourcePos+1);
    Formatter formatter = getFormatter(null);

    int reformattedPos = reformatted.indexOf('^');
    assertNotNull(reformattedPos);
    reformatted = reformatted.substring(0, reformattedPos) + reformatted.substring(reformattedPos+1);

    JEditorPane ta = getPane(source);
    Caret caret = ta.getCaret();
    caret.setDot(sourcePos);
    BaseDocument doc = (BaseDocument) ta.getDocument();
    if (formatter != null) {
        configureIndenters(doc, formatter, true);
    }

    setupDocumentIndentation(doc, preferences);

    runKitAction(ta, DefaultEditorKit.insertBreakAction, "\n");

    String formatted = doc.getText(0, doc.getLength());
    assertEquals(reformatted, formatted);

    if (reformattedPos != -1) {
        assertEquals(reformattedPos, caret.getDot());
    }
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:30,代碼來源:CslTestBase.java

示例9: getCurrentOffset

import javax.swing.JEditorPane; //導入方法依賴的package包/類
/**
 * Returns number of line currently selected in editor or <code>-1</code>.
 *
 * @return number of line currently selected in editor or <code>-1</code>
 */
public int getCurrentOffset () {
    JEditorPane ep = contextDispatcher.getCurrentEditor();
    if (ep == null) {
        return -1;
    }
    Caret caret = ep.getCaret ();
    if (caret == null) {
        return -1;
    }
    return caret.getDot();
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:17,代碼來源:EditorContextImpl.java

示例10: getCurrentElement

import javax.swing.JEditorPane; //導入方法依賴的package包/類
/** throws IllegalComponentStateException when can not return the data in AWT. */
private String getCurrentElement(FileObject fo, JEditorPane ep,
                                 final ElementKind kind, final String[] elementSignaturePtr)
        throws java.awt.IllegalComponentStateException {

    if (fo == null) {
        return null;
    }
    final int currentOffset;
    final String selectedIdentifier;
    if (ep != null) {
        String s;
        Caret caret = ep.getCaret();
        if (caret == null) {
            s = null;
            currentOffset = 0;
        } else {
            s = ep.getSelectedText ();
            currentOffset = ep.getCaretPosition();
            if (ep.getSelectionStart() > currentOffset || ep.getSelectionEnd() < currentOffset) {
                s = null; // caret outside of the selection
            }
        }
        if (s != null && Utilities.isJavaIdentifier (s)) {
            selectedIdentifier = s;
        } else {
            selectedIdentifier = null;
        }
    } else {
        selectedIdentifier = null;
        currentOffset = 0;
    }
    return EditorContextSupport.getCurrentElement(fo, currentOffset, selectedIdentifier, kind, elementSignaturePtr);
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:35,代碼來源:EditorContextImpl.java

示例11: getApplicableFileObject

import javax.swing.JEditorPane; //導入方法依賴的package包/類
private FileObject getApplicableFileObject(int[] caretPosHolder) {
    if (!EventQueue.isDispatchThread()) {
        // Unsafe to ask for an editor pane from a random thread.
        // E.g. org.netbeans.lib.uihandler.LogRecords.write asking for getName().
        Collection<? extends FileObject> dobs = Utilities.actionsGlobalContext().lookupAll(FileObject.class);
        return dobs.size() == 1 ? dobs.iterator().next() : null;
    }

    // TODO: Use the new editor library to compute this:
    // JTextComponent pane = EditorRegistry.lastFocusedComponent();

    TopComponent comp = TopComponent.getRegistry().getActivated();
    if(comp == null) {
        return null;
    }
    Node[] nodes = comp.getActivatedNodes();
    if (nodes != null && nodes.length == 1) {
        if (comp instanceof CloneableEditorSupport.Pane) { //OK. We have an editor
            EditorCookie ec = nodes[0].getLookup().lookup(EditorCookie.class);
            if (ec != null) {
                JEditorPane editorPane = NbDocument.findRecentEditorPane(ec);
                if (editorPane != null) {
                    if (editorPane.getCaret() != null) {
                            caretPosHolder[0] = editorPane.getCaret().getDot();
                    }
                    Document document = editorPane.getDocument();
                    return Source.create(document).getFileObject();
                }
            }
        } else {
            return UICommonUtils.getFileObjectFromNode(nodes[0]);
        }
    }
    
    return null;
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:37,代碼來源:GotoOppositeAction.java

示例12: getRecentColumn

import javax.swing.JEditorPane; //導入方法依賴的package包/類
public static int getRecentColumn() {
    JEditorPane mostRecentEditor = EditorContextDispatcher.getDefault().getMostRecentEditor();
    if (mostRecentEditor != null) {
        Caret caret = mostRecentEditor.getCaret();
        if (caret != null) {
            int offset = caret.getDot();
            try {
                int rs = javax.swing.text.Utilities.getRowStart(mostRecentEditor, offset);
                return offset - rs;
            } catch (BadLocationException blex) {}
        }
    }
    return 0;
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:15,代碼來源:WatchPanel.java

示例13: install

import javax.swing.JEditorPane; //導入方法依賴的package包/類
/**
 * Called when the kit is being installed into
 * a JEditorPane.
 *
 * @param c the JEditorPane
 */
public void install(JEditorPane c) {
    c.addCaretListener(inputAttributeUpdater);
    c.addPropertyChangeListener(inputAttributeUpdater);
    Caret caret = c.getCaret();
    if (caret != null) {
        inputAttributeUpdater.updateInputAttributes
                              (caret.getDot(), caret.getMark(), c);
    }
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:16,代碼來源:StyledEditorKit.java

示例14: writeExternal

import javax.swing.JEditorPane; //導入方法依賴的package包/類
@Override
public void writeExternal(ObjectOutput out) throws IOException {
    super.writeExternal(out);

    // Save environent if support is non-null.
    // XXX #13685: When support is null, the tc will be discarded 
    // after deserialization.
    out.writeObject((support != null) ? support.cesEnv() : null);

    // #16461 Caret could be null?!,
    // hot fix - making it robust for that case.
    int pos = 0;

    // 19559 Even pane could be null! Better solution would be put
    // writeReplace method in place also, but it is a API change. For
    // the time be just robust here.
    JEditorPane p = pane;

    if (p != null) {
        Caret caret = p.getCaret();

        if (caret != null) {
            pos = caret.getDot();
        } else {
            if (p instanceof QuietEditorPane) {
                int lastPos = ((QuietEditorPane) p).getLastPosition();

                if (lastPos == -1) {
                    Logger.getLogger(CloneableEditor.class.getName()).log(Level.WARNING, null,
                                      new java.lang.IllegalStateException("Pane=" +
                                                                          p +
                                                                          "was not initialized yet!"));
                } else {
                    pos = lastPos;
                }
            } else {
                Document doc = ((support != null) ? support.getDocument() : null);

                // Relevant only if document is non-null?!
                if (doc != null) {
                    Logger.getLogger(CloneableEditor.class.getName()).log(Level.WARNING, null,
                                      new java.lang.IllegalStateException("Caret is null in editor pane=" +
                                                                          p +
                                                                          "\nsupport=" +
                                                                          support +
                                                                          "\ndoc=" +
                                                                          doc));
                }
            }
        }
    }

    out.writeObject(new Integer(pos));
    out.writeBoolean(getLookup() == support.getLookup());
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:56,代碼來源:CloneableEditor.java

示例15: insertChar

import javax.swing.JEditorPane; //導入方法依賴的package包/類
protected void insertChar(String original, char insertText, String expected, String selection, boolean codeTemplateMode) throws Exception {
    String source = original;
    String reformatted = expected;
    Formatter formatter = getFormatter(null);

    int sourcePos = source.indexOf('^');
    assertNotNull(sourcePos);
    source = source.substring(0, sourcePos) + source.substring(sourcePos+1);

    int reformattedPos = reformatted.indexOf('^');
    assertNotNull(reformattedPos);
    reformatted = reformatted.substring(0, reformattedPos) + reformatted.substring(reformattedPos+1);

    JEditorPane ta = getPane(source);
    Caret caret = ta.getCaret();
    caret.setDot(sourcePos);
    if (selection != null) {
        int start = original.indexOf(selection);
        assertTrue(start != -1);
        assertTrue("Ambiguous selection - multiple occurrences of selection string",
                original.indexOf(selection, start+1) == -1);
        ta.setSelectionStart(start);
        ta.setSelectionEnd(start+selection.length());
        assertEquals(selection, ta.getSelectedText());
    }

    BaseDocument doc = (BaseDocument) ta.getDocument();

    if (codeTemplateMode) {
        // Copied from editor/codetemplates/src/org/netbeans/lib/editor/codetemplates/CodeTemplateInsertHandler.java
        String EDITING_TEMPLATE_DOC_PROPERTY = "processing-code-template"; // NOI18N
        doc.putProperty(EDITING_TEMPLATE_DOC_PROPERTY, Boolean.TRUE);
    }

    if (formatter != null) {
        configureIndenters(doc, formatter, true);
    }

    setupDocumentIndentation(doc, null);

    runKitAction(ta, DefaultEditorKit.defaultKeyTypedAction, ""+insertText);

    String formatted = doc.getText(0, doc.getLength());
    assertEquals(reformatted, formatted);

    if (reformattedPos != -1) {
        assertEquals(reformattedPos, caret.getDot());
    }
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:50,代碼來源:CslTestBase.java


注:本文中的javax.swing.JEditorPane.getCaret方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。