1

私のプログラムでは、ユーザーが に何かを書き込んでからJTextField「生成」ボタンをクリックすると、 の文字がJTextFieldに描画されますJPanel

JTextFieldユーザーがもう一度クリックしたときに、すべてのテキストをクリアしたいと思いますJTextFieldFocusListenerに aと anActionListenerを追加してこれを達成しようとしましたが、うまくいきJTextFieldませんでした。さらに、の実装でコンパイラ エラーが発生しFocusListenerました。Unreachable Statement

Javaでこれを行うことは可能ですか?もしそうなら、どうすればこれを行うことができますか?

以下のコードは私のActionListener実装です。

dfaText = new JTextField(6);
dfaText.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        generateLabel.setText("NOOOOO!!!");
        dfaText.setText("");

        isDfaDrawn = false;
        canDraw = false;
        repaint();
    }
});
4

5 に答える 5

4

マウス リスナーを追加します。

field.addMouseListener(new MouseAdapter() {
  @Override
  public void mouseClicked(MouseEvent e) {
    field.setText("");
  }
});

ユーザーが合法的に他の場所をクリックしてフィールドに戻った場合、これはイライラする可能性があることに注意してください. ボタンがその間にクリックされた場合にのみフィールドをクリアするなど、何らかの状態を維持したい場合があります。

于 2013-04-19T14:14:20.033 に答える
3

あなたはこれを行うことができます:

textField.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseClicked(MouseEvent e) {
        textField.setText("");
    }
});
于 2013-04-19T14:14:27.540 に答える
2

他人のコードへの単なる追加。

public void textfieldMouseClicked(java.awt.event.MouseEvent evt) {                                      
    uname_tf.setText(null);
} //This will set the JTextfield blank on mouse click//      

public void textfieldFocusLost(java.awt.event.FocusEvent evt) {                                   
    uname_tf.setText("Username");
} //This will bring back the default text when not in focus//

それが役に立てば幸いです、乾杯!!!

于 2015-05-15T18:55:53.390 に答える
1

ワンクリックでテキストを削除したい場合は、次のようにします。

textField.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mousePressed(java.awt.event.MouseEvent evt) {
                textFieldMousePressed(evt);
            }
        });
 private void textFieldMousePressed(java.awt.event.MouseEvent evt) {
          textField.setText("");
    }
于 2013-04-19T14:17:24.143 に答える
0

buttonMethod に 1 行追加します。例:

txtfield.clear();

または、txtfield を空の文字列に設定します

于 2013-04-19T14:11:30.677 に答える