Java 在swing中默认选择文本
当FocusGaund事件发生时,有没有办法在默认情况下自动选择JTextField和JTextArea中的文本?您刚才说了如何做-FocusListener的FocusGaund事件 然后,您可以通过FocusEvent的getSource方法获得其焦点的JComponent,然后对其调用selectAll方法 比如:Java 在swing中默认选择文本,java,swing,focus,jtextfield,jtextarea,Java,Swing,Focus,Jtextfield,Jtextarea,当FocusGaund事件发生时,有没有办法在默认情况下自动选择JTextField和JTextArea中的文本?您刚才说了如何做-FocusListener的FocusGaund事件 然后,您可以通过FocusEvent的getSource方法获得其焦点的JComponent,然后对其调用selectAll方法 比如: FocusAdapter selectAllFocusAdapter = new FocusAdapter() { public void focusGained(Focu
FocusAdapter selectAllFocusAdapter = new FocusAdapter() {
public void focusGained(FocusEvent e) {
final JTextComponent tComponent = (JTextComponent) e.getSource();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
tComponent.selectAll();
}
});
tComponent.selectAll();
}
};
myJTextField.addFocusListener(selectAllFocusAdapter);
otherJTextField.addFocusListener(selectAllFocusAdapter);
myTextArea.addFocusListener(selectAllFocusAdapter);
你刚才说了怎么做——FocusListener的FocusGain事件 然后,您可以通过FocusEvent的getSource方法获得其焦点的JComponent,然后对其调用selectAll方法 比如:
FocusAdapter selectAllFocusAdapter = new FocusAdapter() {
public void focusGained(FocusEvent e) {
final JTextComponent tComponent = (JTextComponent) e.getSource();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
tComponent.selectAll();
}
});
tComponent.selectAll();
}
};
myJTextField.addFocusListener(selectAllFocusAdapter);
otherJTextField.addFocusListener(selectAllFocusAdapter);
myTextArea.addFocusListener(selectAllFocusAdapter);
这就是您需要的:
jTextField1.selectAll();
详情如下:
jTextField1.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
if(jTextField1.getText().equals(initialText))
//jTextField1.setText("");
jTextField1.selectAll();
}
@Override
public void focusLost(FocusEvent e) {
if(jTextField1.getText().equals(""))
jTextField1.setText("whatever");
}
});
这就是您需要的:
jTextField1.selectAll();
详情如下:
jTextField1.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
if(jTextField1.getText().equals(initialText))
//jTextField1.setText("");
jTextField1.selectAll();
}
@Override
public void focusLost(FocusEvent e) {
if(jTextField1.getText().equals(""))
jTextField1.setText("whatever");
}
});
你在期待类似的事情吗
class MyFocusTextField extends JTextField {
{
addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
FocusTextField.this.select(0, getText().length());
}
@Override
public void focusLost(FocusEvent e) {
FocusTextField.this.select(0, 0);
}
});
}
}
你在期待类似的事情吗
class MyFocusTextField extends JTextField {
{
addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
FocusTextField.this.select(0, getText().length());
}
@Override
public void focusLost(FocusEvent e) {
FocusTextField.this.select(0, 0);
}
});
}
}
+1相当好:-但共同问题是关于+1相当好:-但共同问题是关于+1相当好:-但共同问题是关于@mKorbel我同意你的看法。谢谢。+1很好:-但共同的问题是关于@mKorbel我同意你的看法。谢谢。@mKorbel:谢谢!答案已编辑,链接答案为1+。@Ricard请注意,这是对您的问题的回答,因为JTextArea无法选择所有正确的方法,我将带插入符号移动到结尾text@mKorbel:谢谢!答案已编辑,链接答案为1+。@Ricard若要回答您的问题,请注意,因为JTextArea无法选择所有正确的方法,我将带插入符号移动到文本的末尾。您应该从这里查看@mKorbel Answer。您应该从这里查看@mKorbel answer。