下面列出了javax.swing.text.JTextComponent#getText ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static int[] getWordBoundsAtCursor(JTextComponent textComponent, boolean qualified)
{
String text = textComponent.getText();
int caretPos = textComponent.getCaretPosition();
int[] beginAndEndPos = new int[2];
int lastIndexOfText = Math.max(0,text.length()-1);
beginAndEndPos[0] = Math.min(caretPos, lastIndexOfText); // The Math.min is for the Caret at the end of the text
while(0 < beginAndEndPos[0])
{
if(isParseStop(text.charAt(beginAndEndPos[0] - 1), false == qualified))
{
break;
}
--beginAndEndPos[0];
}
beginAndEndPos[1] = caretPos;
while(beginAndEndPos[1] < text.length() && false == isParseStop(text.charAt(beginAndEndPos[1]), true))
{
++beginAndEndPos[1];
}
return beginAndEndPos;
}
private static String lookForTextInsideOfComponent(Component component) {
if (!(component instanceof Container)) {
return null;
}
Container container = (Container) component;
Component[] components = container.getComponents();
for (Component child : components) {
if (child instanceof JLabel) {
// check for a label with text (one without text could be used for an icon)
JLabel label = (JLabel) child;
String text = label.getText();
if (text != null) {
return text;
}
}
else if (child instanceof JTextComponent) {
// surely this is for displaying text
JTextComponent textComponent = (JTextComponent) child;
return textComponent.getText();
}
}
return null;
}
public Object getItem() {
JTextComponent editor = getEditor();
Object newValue = editor.getText();
if (oldValue != null && !(oldValue instanceof String)) {
// The original value is not a string. Should return the value in it's
// original type.
if (newValue.equals(oldValue.toString())) {
return oldValue;
} else {
// Must take the value from the editor and get the value and cast it to the new type.
Class<?> cls = oldValue.getClass();
try {
Method method = cls.getMethod("valueOf", String.class); // NOI18N
newValue = method.invoke(oldValue, new Object[] { editor.getText() });
} catch (Exception ex) {
// Fail silently and return the newValue (a String object)
Logger.getLogger("ReturnTypeUIHelper").log(Level.FINE, "ignored excep[tion", ex); //NOI18N
}
}
}
return newValue;
}
private boolean isExpectedNext(JTextComponent input, String nextChar)
{
String expected;
if (input.getSelectionStart() < input.getSelectionEnd())
{
try
{
expected = input.getText(input.getSelectionStart(), 1);
}
catch (BadLocationException ex)
{
log.warn("Could not get first character from input selection.", ex);
return false;
}
}
else
{
expected = "";
}
return nextChar.equalsIgnoreCase(expected);
}
public void addTextToRecent(@Nonnull JTextComponent textField) {
final String text = textField.getText();
if (text.length() > 0) {
FindInProjectSettings findInProjectSettings = FindInProjectSettings.getInstance(myProject);
if (textField == mySearchTextComponent) {
findInProjectSettings.addStringToFind(text);
if (mySearchFieldWrapper.getTargetComponent() instanceof SearchTextField) {
((SearchTextField)mySearchFieldWrapper.getTargetComponent()).addCurrentTextToHistory();
}
}
else {
findInProjectSettings.addStringToReplace(text);
if (myReplaceFieldWrapper.getTargetComponent() instanceof SearchTextField) {
((SearchTextField)myReplaceFieldWrapper.getTargetComponent()).addCurrentTextToHistory();
}
}
}
}
public static void cut(JTextComponent jText) {
String s = jText.getSelectedText();
if (s == null) {
return;
}
if (s.length() == 0) {
return;
}
String text = jText.getText();
String before = text.substring(0, jText.getSelectionStart());
String after = text.substring(jText.getSelectionEnd(), text.length());
jText.setText(before + after);
CopyHandler.toClipboard(s);
}
public static void paste(JTextComponent jText) {
String s = CopyHandler.fromClipboard();
if (s == null) {
return;
}
String text = jText.getText();
String before = text.substring(0, jText.getSelectionStart());
String after = text.substring(jText.getSelectionEnd(), text.length());
jText.setText(before + s + after);
int caretPosition = before.length() + s.length();
if (caretPosition <= jText.getText().length()) {
jText.setCaretPosition(before.length() + s.length());
}
}
@Override
public void mouseClicked(MouseEvent e) {
if (e.getModifiers() == InputEvent.BUTTON3_MASK) {
if (!(e.getSource() instanceof JTextComponent)) {
return;
}
textComponent = (JTextComponent) e.getSource();
textComponent.requestFocus();
boolean enabled = textComponent.isEnabled();
boolean editable = textComponent.isEditable();
boolean nonempty = !(textComponent.getText() == null || textComponent.getText().equals(""));
boolean marked = textComponent.getSelectedText() != null;
boolean pasteAvailable = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null).isDataFlavorSupported(DataFlavor.stringFlavor);
undoAction.setEnabled(enabled && editable && (lastActionSelected == Actions.CUT || lastActionSelected == Actions.PASTE));
cutAction.setEnabled(enabled && editable && marked);
copyAction.setEnabled(enabled && marked);
pasteAction.setEnabled(enabled && editable && pasteAvailable);
selectAllAction.setEnabled(enabled && nonempty);
int nx = e.getX();
if (nx > 500) {
nx = nx - popup.getSize().width;
}
popup.show(e.getComponent(), nx, e.getY() - popup.getSize().height);
}
}
private static void replacePattern(String pattern, JTextComponent area, String replace, boolean select) {
String props = area.getText();
Matcher match = Pattern.compile(pattern, Pattern.DOTALL).matcher(props);
if (match.matches()) {
int begin = props.indexOf(TestChecker.PROP_SKIP_TEST);
props = props.replace(TestChecker.PROP_SKIP_TEST + match.group(1), replace); //NOI18N
area.setText(props);
if (select) {
area.setSelectionStart(begin);
area.setSelectionEnd(begin + replace.length());
area.requestFocusInWindow();
}
} else {
String sep = "\n";//NOI18N
if (props.endsWith("\n") || props.trim().length() == 0) {//NOI18N
sep = "";//NOI18N
}
props = props + sep + replace; //NOI18N
area.setText(props);
if (select) {
area.setSelectionStart(props.length() - replace.length());
area.setSelectionEnd(props.length());
area.requestFocusInWindow();
}
}
}
private void prepareEditor() {
Component c = getEditor().getEditorComponent();
if (c instanceof JTextComponent) {
JTextComponent jtc = (JTextComponent) c;
String s = jtc.getText();
if ((s != null) && (s.length() > 0)) {
jtc.setSelectionStart(0);
jtc.setSelectionEnd(s.length());
}
if (tableUI) {
jtc.setBackground(getBackground());
} else {
jtc.setBackground(PropUtils.getTextFieldBackground());
}
if( tableUI )
jtc.requestFocus();
}
if (getLayout() != null) {
getLayout().layoutContainer(this);
}
repaint();
}
private int getTextLength(JTextComponent c) {
if (c == null) {
return 0;
}
if (c.getText() == null) {
return 0;
}
return c.getText().length();
}
@Override
protected List<Completion> getCompletionsImpl(JTextComponent comp) {
String text = comp.getText();
int dot = comp.getCaretPosition();
return getCompletionsImpl(text, dot);
}
private String getText(JTextComponent textComponent) {
String s = textComponent.getText();
return s != null ? s.trim() : "";
}
String getText() {
JTextComponent textC = getTextComponent();
return textC != null ? textC.getText() : getSelectedItem().toString();
}
public void keyPressed(KeyEvent e) {
JTextComponent field = (JTextComponent) e.getComponent();
int keyCode = e.getKeyCode();
char keyChar = e.getKeyChar();
String text = field.getText();
String selText = field.getSelectedText();
int caretPos = field.getCaretPosition();
int textLength = text.length();
if ((keyCode == KeyEvent.VK_LEFT) && (caretPos == 0)
&& (selText == null)) {
field.firePropertyChange("Left", 0, 1);
} else if (((keyCode == KeyEvent.VK_RIGHT)
&& (caretPos == textLength) && (selText == null))
|| ((keyChar == '.') && (!text.isEmpty()) && (selText == null))) {
field.firePropertyChange("Right", 0, 1);
} else if ((keyCode == KeyEvent.VK_BACK_SPACE) && (caretPos == 0)
&& (selText == null)) {
field.firePropertyChange("BackSpace", 0, 1);
} else if ((keyCode == KeyEvent.VK_DELETE)
&& (caretPos == textLength) && (selText == null)) {
field.firePropertyChange("Delete", 0, 1);
} else if (keyCode == KeyEvent.VK_HOME) {
IPV4Field.this.ipFields[0].unSelectAllWhenFocusGained();
IPV4Field.this.ipFields[0].requestFocus();
IPV4Field.this.ipFields[0].setCaretPosition(0);
} else if (keyCode == KeyEvent.VK_END) {
int last = IPV4Field.this.ipFields.length - 1;
textLength = IPV4Field.this.ipFields[last].getText()
.length();
IPV4Field.this.ipFields[last]
.unSelectAllWhenFocusGained();
IPV4Field.this.ipFields[last].requestFocus();
IPV4Field.this.ipFields[last]
.setCaretPosition(textLength);
} else if ((keyCode == KeyEvent.VK_0 || keyCode == KeyEvent.VK_NUMPAD0) && (caretPos == 0 || (text != null && text.equals(selText)))) {
field.firePropertyChange("Right", 0, 1);
} else if (("0123456789".indexOf(keyChar) >= 0)) {
if (selText == null) {
int ipInt = (text.length() == 0 ? 0 : Integer
.parseInt(text));
if (ipInt > 25) {
field.firePropertyChange("Right", 0, 1);
}
} else {
if (field.getSelectionStart() == 2
&& field.getSelectionEnd() == 3) {
field.firePropertyChange("Right", 0, 1);
}
}
}
}
public String getText() {
JTextComponent textC = getTextComponent();
return textC != null ? textC.getText() : getSelectedItem().toString();
}
public String getText() {
JTextComponent textC = getTextComponent();
return textC != null ? textC.getText() : getSelectedItem().toString();
}
public static String value(JTextComponent txt) {
return txt.getText();
}
@Override
public void keyTyped(KeyEvent e)
{
if (!hiscoreConfig.autocomplete())
{
return;
}
final JTextComponent input = (JTextComponent)e.getSource();
final String inputText = input.getText();
// Only autocomplete if the selection end is at the end of the text.
if (input.getSelectionEnd() != inputText.length())
{
return;
}
// Character to be inserted at the selection start.
final String charToInsert = Character.toString(e.getKeyChar());
// Don't attempt to autocomplete if the name is invalid.
// This condition is also true when the user presses a key like backspace.
if (INVALID_CHARS.matcher(charToInsert).find()
|| INVALID_CHARS.matcher(inputText).find())
{
return;
}
// Check if we are already autocompleting.
if (autocompleteName != null && autocompleteNamePattern.matcher(inputText).matches())
{
if (isExpectedNext(input, charToInsert))
{
try
{
// Insert the character and move the selection.
final int insertIndex = input.getSelectionStart();
Document doc = input.getDocument();
doc.remove(insertIndex, 1);
doc.insertString(insertIndex, charToInsert, null);
input.select(insertIndex + 1, input.getSelectionEnd());
}
catch (BadLocationException ex)
{
log.warn("Could not insert character.", ex);
}
// Prevent default behavior.
e.consume();
}
else // Character to insert does not match current autocompletion. Look for another name.
{
newAutocomplete(e);
}
}
else // Search for a name to autocomplete
{
newAutocomplete(e);
}
}
/**
* Constructs new {@link TextComponentState} with settings from {@link JTextComponent}.
*
* @param textComponent {@link JTextComponent} to retrieve settings from
*/
public TextComponentState ( final JTextComponent textComponent )
{
this ( textComponent.getText (), textComponent.getCaretPosition () );
}