繁体   English   中英

用户单击JTextField时如何删除文本?

[英]How to delete text when a user clicks a JTextField?

在我的程序中,用户在JTextField写一些东西,然后单击“生成”按钮,这会触发JTextField的字符被绘制到JPanel

那么我想以清除所有文字JTextField ,当用户点击了JTextField一次。 我试图通过向JTextField添加FocusListenerActionListener来实现这一点,但是我的尝试没有用。 此外,我对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();
    }
});

添加鼠标侦听器:

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

请记住,如果用户合法地单击其他位置并返回到该字段,则可能会感到沮丧。 您可能希望保持某种状态,例如,如果在此期间单击了按钮,则仅清除该字段。

你可以这样做:

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

只是对他人代码的补充。

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//

希望能有所帮助,干杯!!!

如果您只想单击它以删除文本,则可以这样操作:

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("");
    }

在您的buttonMethod中添加1行,例如:

txtfield.clear();

或将您的txtfield设置为空字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM