Java如何将键侦听器事件处理程序添加到JTextField?
在这个小的Swing示例中,我们演示了如何使用java.awt.event.KeyAdapter类来处理文本字段组件的键盘事件。该代码段会将在JTextField组件中键入的字符更改为大写。
此用例的更好方法是改用DocumentFilter类。请参见以下示例,如何将JTextField文本格式化为大写?
package org.nhooo.example.swing;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.HeadlessException;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class UppercaseTextFieldDemo extends JFrame {
public UppercaseTextFieldDemo() throws HeadlessException {
initComponents();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new UppercaseTextFieldDemo().setVisible(true));
}
protected void initComponents() {
//设置默认表单大小,关闭事件和布局管理器
setSize(250, 250);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));
//为我们的演示应用程序创建标签和文本字段,然后添加
//框架内容窗格对象的组件。
JLabel usernameLabel = new JLabel("Username: ");
JTextField usernameTextField = new JTextField();
usernameTextField.setPreferredSize(new Dimension(150, 20));
getContentPane().add(usernameLabel);
getContentPane().add(usernameTextField);
//为文本字段注册一个KeyListener。使用KeyAdapter类
//允许我们实施我们要监听的唯一关键监听器事件,
//在此示例中,我们使用keyReleased事件。
usernameTextField.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
JTextField textField = (JTextField) e.getSource();
String text = textField.getText();
textField.setText(text.toUpperCase());
}
});
}
}
热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短