1

イベントが発生したときにデフォルトでテキストJTextFieldを自動的に選択する方法はありますか?JTextAreafocusGained

4

3 に答える 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 に答える