java - 如何为 JTextField 添加快捷键?

标签 java swing jtextfield key-bindings

我卡在某个步骤中,无法添加快捷键,例如:CTRL+SPACE 到我的程序,我正在搜索一个星期,但我不能找不到任何 答案。

最佳答案

您需要查看 Java Tutorial以获得对键绑定(bind)的良好概述。

这是一个简单的例子:

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

public class KeyBindings extends Box{
    public KeyBindings(){
        super(BoxLayout.Y_AXIS);
        final JTextPane textArea = new JTextPane();
        textArea.insertComponent(new JLabel("Text"));
        add(textArea);

        Action action = new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                textArea.setText("New Text");
            }};
         String keyStrokeAndKey = "control SPACE";
         KeyStroke keyStroke = KeyStroke.getKeyStroke(keyStrokeAndKey);
         textArea.getInputMap().put(keyStroke, keyStrokeAndKey);
         textArea.getActionMap().put(keyStrokeAndKey, action);
    }


    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setContentPane(new KeyBindings());
        frame.pack();
        frame.setVisible(true);
    }
}

关于java - 如何为 JTextField 添加快捷键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13979667/

相关文章:

java - 如果任何请求在 tomcat 线程池中创建更多线程怎么办

java - 持续检查系统中其他模块是否正常工作的模块设计模式?

java - JUnit 5 @Tag 不能按预期与 @BeforeEach/@AfterEach 一起工作

java - BoxLayout 无法共享。尝试将数组中的多个标签添加到 BoxLayout 面板中

java,从多个图像合成图像

java - 将值从 JFrame 传递到 JPanel

java - 如何使用 documentListener 获取对象的索引?

java - 将 ArrayList 拆分为给定数量的子 ArrayList

java - JTextField 中的数字数组 - Java

Java JTextfield 固定文本,允许在文本开头附加文本