gpt4 book ai didi

java - 与无文本字段的按键事件同时更新文本字段

转载 作者:行者123 更新时间:2023-11-30 03:52:21 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,用户可以输入数字,但不能输入字母或符号。我有一个不可编辑的文本字段,因为我只想在文本字段上显示可接受的用户输入键。这是我的代码的基本结构。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class SampleProgram extends JFrame implements ActionListener, KeyListener
{
private Container container;
private JPanel panel;
private JTextField textField;
private JButton button;
private String[] names = {"1", "2", "3", "4", "5", "6", "7", "8", "9"};

public SampleProgram()
{
container = getContentPane();
panel = new JPanel();

textField = new JTextField();
textField.setEditable(false);
contain.add(textField);

addKeyListener(this);

button = new JButton("Some Action Button");
button.addActionListener(this);
panel.add(button);

container.add(panel);

setResizable(false);
setVisible(true);
}

public void keyPressed(KeyEvent event) {}
public void keyReleased(KeyEvent event) {}

public void keyTyped(KeyEvent event)
{
String action = String.valueOf(event.getKeyChar());
for (String s : names)
if (action.equalsIgnoreCase(s))
{
someAction(action);
return;
}
}

public void actionPerformed(ActionEvent event)
{
String action = ((JButton)event.getSource()).getText();
someAction(action);
}

private void someAction(String input)
{
textField.setText(input);
}

}

这是我的代码的精简版本。我的 ActionListener 正在做它应该做的事情,但我的 KeyListener 根本不工作。我也尝试将 KeyListener 添加到 textField,但这也不起作用。如何让我的程序读取用户按键输入?为了找出错误,我尝试将代码 textField.setText(action) 放入 keyTyped 方法中,然后我发现我的代码甚至没有输入 keyTyped 方法。

最佳答案

使用JFormattedTextField。您可以设置 MaskFormatter 以仅允许数字。

阅读 Swing 教程中关于 How to Use Formatted Text Fields 的部分了解更多信息和示例。

关于java - 与无文本字段的按键事件同时更新文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24113564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com