本文整理汇总了Java中javax.swing.text.JTextComponent.getSelectionStart方法的典型用法代码示例。如果您正苦于以下问题:Java JTextComponent.getSelectionStart方法的具体用法?Java JTextComponent.getSelectionStart怎么用?Java JTextComponent.getSelectionStart使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类javax.swing.text.JTextComponent
的用法示例。
在下文中一共展示了JTextComponent.getSelectionStart方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: canFilter
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
protected @Override boolean canFilter(JTextComponent component) {
if (component.getCaret() == null) {
return false;
}
int caretOffset = component.getSelectionStart();
Document doc = component.getDocument();
filterPrefix = null;
if (caretOffset >= queryCaretOffset) {
if (queryAnchorOffset < queryCaretOffset) {
try {
filterPrefix = doc.getText(queryAnchorOffset, caretOffset - queryAnchorOffset);
if (!isJavaIdentifierPart(filterPrefix)) {
filterPrefix = null;
}
} catch (BadLocationException e) {
// filterPrefix stays null -> no filtering
}
}
}
return (filterPrefix != null);
}
示例2: actionPerformed
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
public @Override void actionPerformed(ActionEvent evt, JTextComponent target) {
if (target != null) {
int selectionStartOffset = target.getSelectionStart();
int selectionEndOffset = target.getSelectionEnd();
if (selectionEndOffset > selectionStartOffset || selectNext) {
SelectionHandler handler = (SelectionHandler)target.getClientProperty(SelectionHandler.class);
if (handler == null) {
handler = new SelectionHandler(target);
target.addCaretListener(handler);
// No need to remove the listener above as the handler
// is stored is the client-property of the component itself
target.putClientProperty(SelectionHandler.class, handler);
}
if (selectNext) { // select next element
handler.selectNext();
} else { // select previous
handler.selectPrevious();
}
}
}
}
示例3: defaultAction
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
public void defaultAction(JTextComponent component) {
Completion.get().hideAll();
// Remove the typed part
Document doc = component.getDocument();
int caretOffset = component.getSelectionStart();
int prefixLength = 0;
try {
String ident = Utilities.getIdentifierBefore((BaseDocument)doc, caretOffset);
if (ident != null) {
prefixLength = ident.length();
}
} catch (BadLocationException ex) {
Exceptions.printStackTrace(ex);
}
if (prefixLength > 0) {
try {
// Remove the typed prefix
doc.remove(caretOffset - prefixLength, prefixLength);
} catch (BadLocationException ble) {
}
}
codeTemplate.insert(component);
}
示例4: actionPerformed
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
public void actionPerformed(ActionEvent e) {
JTextComponent tc = getTextComponent(e);
String filename = null;
// Get the name of the file to load. If there is a selection, use
// that as the file name, otherwise, scan for a filename around
// the caret.
try {
int selStart = tc.getSelectionStart();
int selEnd = tc.getSelectionEnd();
if (selStart != selEnd) {
filename = tc.getText(selStart, selEnd - selStart);
} else {
filename = getFilenameAtCaret(tc);
}
} catch (BadLocationException ble) {
ble.printStackTrace();
UIManager.getLookAndFeel().provideErrorFeedback(tc);
return;
}
menuFunctions.loadFile(new File(filename));
}
示例5: canFilter
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
@Override
protected boolean canFilter(JTextComponent component) {
final int newOffset = component.getSelectionStart();
final Document doc = component.getDocument();
if (newOffset > caretOffset && items != null && !items.isEmpty()) {
try {
String prefix = doc.getText(caretOffset, newOffset - caretOffset);
if (!isJavaIdentifierPart(prefix)) {
Completion.get().hideDocumentation();
Completion.get().hideCompletion();
}
} catch (BadLocationException ble) {
}
}
return false;
}
示例6: preQueryUpdate
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
@Override
protected void preQueryUpdate(JTextComponent component) {
int newCaretOffset = component.getSelectionStart();
if (newCaretOffset >= caretOffset) {
try {
if (isJavaIdentifierPart(component.getDocument().getText(caretOffset, newCaretOffset - caretOffset), false)) {
return;
}
} catch (BadLocationException e) {
}
}
Completion.get().hideCompletion();
}
示例7: createTask
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
@Override
public CompletionTask createTask(int queryType, JTextComponent component) {
if (queryType != CompletionProvider.COMPLETION_QUERY_TYPE && queryType !=CompletionProvider.COMPLETION_ALL_QUERY_TYPE) {
return null;
}
return new AsyncCompletionTask(new PUCompletionQuery(queryType, component, component.getSelectionStart(), true), component);
}
示例8: getSelectionOrIdentifierBlock
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
/** Get the selection if there's any or get the identifier around
* the position if there's no selection.
* @param c component to work with
* @param offset position in document - usually the caret.getDot()
* @return the block (starting and ending position) enclosing the identifier
* or null if no identifier was found
*/
public static int[] getSelectionOrIdentifierBlock(JTextComponent c, int offset)
throws BadLocationException {
Document doc = c.getDocument();
Caret caret = c.getCaret();
int[] ret;
if (Utilities.isSelectionShowing(caret)) {
ret = new int[] { c.getSelectionStart(), c.getSelectionEnd() };
} else if (doc instanceof BaseDocument){
ret = getIdentifierBlock((BaseDocument)doc, offset);
} else {
ret = getIdentifierBlock(c, offset);
}
return ret;
}
示例9: actionPerformed
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
public void actionPerformed(ActionEvent e) {
JTextComponent tc = (JTextComponent) getInvoker();
String sel = tc.getSelectedText();
if (e.getSource() == cutItem) {
tc.cut();
} else if (e.getSource() == copyItem) {
tc.copy();
} else if (e.getSource() == pasteItem) {
tc.paste();
} else if (e.getSource() == selectAllItem) {
tc.selectAll();
} else if (e.getSource() == deleteItem) {
Document doc = tc.getDocument();
int start = tc.getSelectionStart();
int end = tc.getSelectionEnd();
try {
Position p0 = doc.createPosition(start);
Position p1 = doc.createPosition(end);
if ((p0 != null) && (p1 != null)
&& (p0.getOffset() != p1.getOffset())) {
doc.remove(p0.getOffset(), p1.getOffset() - p0.getOffset());
}
} catch (BadLocationException be) {
}
}
}
示例10: getAnchorOffset
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
final int getAnchorOffset() {
int offset = anchorOffset;
if (offset == -1) {
// Get caret position
JTextComponent editorComponent = getEditorComponent();
if (editorComponent != null) {
offset = editorComponent.getSelectionStart();
}
}
return offset;
}
示例11: createTask
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
public CompletionTask createTask(int queryType, JTextComponent component) {
if( queryType != CompletionProvider.COMPLETION_QUERY_TYPE )
return null;
return new AsyncCompletionTask(new HibernateMappingCompletionQuery(queryType,
component.getSelectionStart()), component);
}
示例12: getCurrentFile
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
private JTextComponent getCurrentFile(int[] span) {
JTextComponent pane = EditorRegistry.lastFocusedComponent();
if (pane == null) return null;
Document doc = pane.getDocument();
Object stream = doc != null ? doc.getProperty(Document.StreamDescriptionProperty) : null;
if (!(stream instanceof DataObject))
return null;
if (!"text/x-java".equals(NbEditorUtilities.getMimeType(doc))) //NOI18N
return null;
TopComponent tc = TopComponent.getRegistry().getActivated();
Component c = pane;
while (c != null) {
if (c == tc) break;
c = c.getParent();
}
if (c == null) return null;
if (span != null) {
span[0] = pane.getSelectionStart();
span[1] = pane.getSelectionEnd();
if (span[0] == span[1] && requiresSelection())
return null;
}
return pane;
}
示例13: createTask
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
public CompletionTask createTask(int queryType, JTextComponent component) {
if( queryType != CompletionProvider.COMPLETION_QUERY_TYPE )
return null;
return new AsyncCompletionTask(new HibernateCfgCompletionQuery(queryType,
component.getSelectionStart()), component);
}
示例14: actionPerformed
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
@Override
public void actionPerformed(ActionEvent e) {
if (ignoreComboAction)
return; // not invoked by user, ignore
GuardedBlock gBlock = codeData.getGuardedBlock(category, blockIndex);
GuardBlockInfo gInfo = getGuardInfos(category)[blockIndex];
int[] blockBounds = getGuardBlockBounds(category, blockIndex);
int startOffset = blockBounds[0];
int endOffset = blockBounds[1];
int gHead = gBlock.getHeaderLength();
int gFoot = gBlock.getFooterLength();
JTextComponent editor = getEditor(category);
StyledDocument doc = (StyledDocument) editor.getDocument();
changed = true;
JComboBox combo = (JComboBox) e.getSource();
try {
docListener.setActive(false);
if (combo.getSelectedIndex() == 1) { // changing from default to custom
NbDocument.unmarkGuarded(doc, startOffset, endOffset - startOffset);
// keep last '\n' so we don't destroy next editable block's position
doc.remove(startOffset, endOffset - startOffset - 1);
// insert the custom code into the document
String customCode = gBlock.getCustomCode();
int customLength = customCode.length();
if (gInfo.customizedCode != null) { // already was edited before
customCode = customCode.substring(0, gHead)
+ gInfo.customizedCode
+ customCode.substring(customLength - gFoot);
customLength = customCode.length();
}
if (customCode.endsWith("\n")) // NOI18N
customCode = customCode.substring(0, customLength-1);
doc.insertString(startOffset, customCode, null);
gInfo.customized = true;
// make guarded "header" and "footer", select the text in between
NbDocument.markGuarded(doc, startOffset, gHead);
NbDocument.markGuarded(doc, startOffset + customLength - gFoot, gFoot);
editor.setSelectionStart(startOffset + gHead);
editor.setSelectionEnd(startOffset + customLength - gFoot);
editor.requestFocus();
combo.setToolTipText(gBlock.getCustomEntry().getToolTipText());
}
else { // changing from custom to default
// remember the customized code
gInfo.customizedCode = doc.getText(startOffset + gHead,
endOffset - gFoot - gHead - startOffset);
NbDocument.unmarkGuarded(doc, endOffset - gFoot, gFoot);
NbDocument.unmarkGuarded(doc, startOffset, gHead);
// keep last '\n' so we don't destroy next editable block's position
doc.remove(startOffset, endOffset - startOffset - 1);
String defaultCode = gBlock.getDefaultCode();
if (defaultCode.endsWith("\n")) // NOI18N
defaultCode = defaultCode.substring(0, defaultCode.length()-1);
doc.insertString(startOffset, defaultCode, null);
gInfo.customized = false;
// make the whole text guarded, cancel selection
NbDocument.markGuarded(doc, startOffset, defaultCode.length()+1); // including '\n'
if (editor.getSelectionStart() >= startOffset && editor.getSelectionEnd() <= endOffset)
editor.setCaretPosition(startOffset);
combo.setToolTipText(NbBundle.getMessage(CustomCodeData.class, "CTL_GuardCombo_Default_Hint")); // NOI18N
}
// we must create a new Position - current was moved away by inserting new string on it
gInfo.position = NbDocument.createPosition(doc, startOffset, Position.Bias.Forward);
docListener.setActive(true);
}
catch (BadLocationException ex) { // should not happen
ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
}
}
示例15: actionPerformed
import javax.swing.text.JTextComponent; //导入方法依赖的package包/类
public void actionPerformed(ActionEvent evt) {
Caret c = caret;
JTextComponent component = editorUI.getComponent();
// Also check whether the component is last focused since when undocking an editor
// all the components' carets fire this listener and so invalid component's
// data would get displayed in the global status bar.
if (component != null && component == EditorRegistry.lastFocusedComponent()) {
if (c != null) {
BaseDocument doc = Utilities.getDocument(component);
if (doc != null && doc.getDefaultRootElement().getElementCount()>0) {
int pos = c.getDot();
String s = Utilities.debugPosition(doc, pos, ":");
if (CARET_OFFSET_LOG.isLoggable(Level.FINE)) { // Possibly add caret offset info
s += " <" + pos + ">"; // NOI18N
}
int countOfSelectedChars = component.getSelectionEnd() - component.getSelectionStart();
final boolean hasSelection = countOfSelectedChars > 0;
if (hasSelection) {
try {
//count of selected lines
int lineEnd = Utilities.getLineOffset(doc, component.getSelectionEnd());
int lineStart = Utilities.getLineOffset(doc, component.getSelectionStart());
s += "/" + (lineEnd - lineStart + 1);
} catch (BadLocationException ex) {
}
//count of selected characters
s += ":" + countOfSelectedChars;
}
//rows:cols/countRows:countCols
setText(CELL_POSITION, s);
}
}
Boolean b = (Boolean)editorUI.getProperty(EditorUI.OVERWRITE_MODE_PROPERTY);
boolean om = (b != null && b.booleanValue());
if (om != overwriteModeDisplayed) {
overwriteModeDisplayed = om;
setText(CELL_TYPING_MODE, overwriteModeDisplayed ? ovrText : insText);
}
}
}