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

标签 java swing actionlistener jtextfield focuslistener

在我的程序中,用户在 JTextField 中写入内容,然后单击“生成”按钮,这会触发将 JTextField 中的字符绘制到 >JPanel.

然后,当用户再次单击 JTextField 时,我想清除 JTextField 中的所有文本。我试图通过向 JTextField 添加一个 FocusListener 和一个 ActionListener 来实现这一点,但是我的尝试没有奏效。此外,我对 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("");
  }
});

请记住,如果用户合法地点击别处并返回该字段,这可能会令人沮丧。你可能希望保持一些状态,例如如果在此期间单击了按钮,则仅清除该字段。

关于java - 如何在用户单击 JTextField 时删除文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16106605/

相关文章:

Java JLabel 多行高度

Java FX - Cp1252 字符编码错误

java - ServerBootstrap 的 handler(ChannelHandler c) 和 childHandler(ChannelHandler c) 有什么区别?

java - 使用 JScrollPane 进行滚动和非常大且缩放的自定义绘图

java - actionPerformed 按钮上的异常

java - 使用 JButton 和 ActionListener 启动记事本

java - ExecutorService,避免任务队列太满的标准方法

java - 使用 java swing 模拟 apk 文件以便在我的桌面上使用它

java - 获得黑暗的外观和感觉?

java - GetChangeGui 手册 JFrame