java - 仅按下第一个键时如何执行操作?

标签 java jtextfield

我想要在按下键盘按钮时发生 JTextFeild 事件。我想要将“ADZ”文本连接到前面的整个文本。(如果我们输入“2”整个文本应该是“ADZ2”)该操作将仅执行第一次按键。按下任何按键后不会执行任何操作。该操作只会执行一次。 我尝试了下面的代码,但如果输入 22,它会给出“ADZADZ22”。

private void JTextFeild1KeyTyped(java.awt.event.KeyEvent evt) {
String num1 = JTextFeild1.getText();
JTextFeild1.setText("ADZ"+num1);

我想要这个,如果输入 22,它将给出 ADZ22。

最佳答案

解决这个问题的一个简单方法是检查前缀是否已经存在。 这可以避免相同的前缀添加两次。

private void JTextFeild1KeyTyped(java.awt.event.KeyEvent evt) {
  String num1 = JTextFeild1.getText();
  if (!num1.startsWith("ADZ"))
  {
    num1 = "ADZ" + num1;
    JTextFeild1.setText(num1);
  }
  ...
}

请注意:Java 编码规则建议字段名称(例如 jTextField)以小写字符开头。方法名称也是如此(例如 private void jTextField1KeyTyped)

关于java - 仅按下第一个键时如何执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30799787/

相关文章:

java - 使用 pack() 自动调整 JFrame 的大小而不折叠其 jPanel

Java程序错误,将华氏度转换为摄氏度

java - 文本字段在 JOptionPane.showInputDialog 中显示两次。为什么?

java - JTextField 未出现在网格布局中

java - "Clear Memory"+ appWidget 崩溃后服务不重启

java - 在java中制作扩展类的数组列表

java - 使用 Java8 流 API 从 token 分隔输入流中解码并行消息

带有自己提示符的 Java 命令行应用程序

java - 如何让一个组件占据GridBagLayout中的所有可用空间?

java - 如何让 JTextField 响应回车键