イベントが発生したときにデフォルトでテキストJTextField
を自動的に選択する方法はありますか?JTextArea
focusGained
質問する
386 次
3 に答える
6
あなたはそれを行う方法を言った-FocusListenerのfocusGainedイベント。
次に、FocusEventのメソッドを介してフォーカスが取得されたJComponentを取得し、そのgetSource()
メソッドを呼び出す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);
于 2012-11-25T17:33:04.313 に答える
6
これはあなたが必要とするものです:
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");
}
});
于 2012-11-25T17:34:15.040 に答える
5
あなたは次のようなものを期待していますか
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);
}
});
}
}
于 2012-11-25T17:35:45.073 に答える