テキストフィールドをクリックすると、そこに入力された最近のテキストがクリアされる可能性はありますか? 私は、これらがテキストフィールドだとします。
Name: Last Name First Name Middle Initial
次に、姓をクリックすると、名とミドルネームのイニシャルと同じようにクリアされます。読んでくれてありがとう、あなたが私を助けてくれることを願っています。
テキストフィールドをクリックすると、そこに入力された最近のテキストがクリアされる可能性はありますか? 私は、これらがテキストフィールドだとします。
Name: Last Name First Name Middle Initial
次に、姓をクリックすると、名とミドルネームのイニシャルと同じようにクリアされます。読んでくれてありがとう、あなたが私を助けてくれることを願っています。
すべてのテキストが選択されている FocusListener を考えてみましょう。
myTextField.addFocusListener(new FocusAdapter() {
public void focusGained(FocusEvent fEvt) {
JTextField tField = (JTextField)fEvt.getSource();
tField.selectAll();
}
});
すべてのテキストを選択することにより、ユーザーは入力して現在のテキストを削除して新しいテキストに置き換えるか、マウスまたは矢印キーを使用して現在のテキストを保持し、場合によっては変更するかを選択できます。
ホバークラフトは正しいと思います。FocusListener
この目的には a を使用することをお勧めします。
これに対処できるユーティリティ クラスを作成します。自動選択についても同様のことを行いました。つまり、すべてのテキスト コンポーネントを拡張したり、同じことを行う小さなフォーカス リスナーを失ったりする必要はありません。
public class AutoClearOnFocusManager extends FocusAdapter {
private static final AutoClearOnFocusManager SHARED_INSTANCE = new AutoClearOnFocusManager();
private AutoClearOnFocusManager() {
}
public static AutoClearOnFocusManager getInstance() {
return SHARED_INSTANCE;
}
@Override
public void focusGained(FocusEvent e) {
Component component = e.getComponent();
if (component instanceof JTextComponent) {
((JTextComponent)component).setText(null);
}
}
public static void install(JTextComponent comp) {
comp.addFocusListener(getInstance());
}
public static void uninstall(JTextComponent comp) {
comp.removeFocusListener(getInstance());
}
}
次に、使用するだけです
JTextField textField = new JTextField("Some text");
AutoClearOnFocusManager.install(textField);
「プロンプト」(ユーザーにプロンプトを表示するフィールド内のテキスト) を提供するだけの場合は、Prompt APIを参照することもできます。
なぜmouseClicked
イベントを使わないのですか?
だから、あなたは次のようなものを持つことができます
jTextFieldMyText.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTextFieldMyTextMouseClicked(evt);
}
});
private void jTextFieldMyTextMouseClicked(java.awt.event.MouseEvent evt) {
jTextFieldMyText.setText("");
}
フォーカスの場合
jTextFieldMyText.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
jTextFieldMyTextFocusGained(evt);
}
});
private void jTextFieldMyTextFocusGained(java.awt.event.MouseEvent evt) {
jTextFieldMyText.setText("");
}
テキストをすぐに削除したくない場合は、提案されているselectAll()
代わりに何度も使用してくださいsetText("")