首页 > 解决方案 > 用键盘快捷键填充 jTextField

问题描述

我有一个名为 fecha 的 jTextField,默认情况下,它有一个文本“dd/mm/aaaa”来向用户展示如何填充它,我添加了一个事件,当它被点击或获得焦点时,它的文本消失了。我想使用 ctrl + A 的快捷方式来用实际日期填充 jTextField。

标签: javanetbeans

解决方案


更新:

要获取今天的日期,您可以使用以下方法:

    java.time.LocalDate.now()

您可以使用它来将 JTextField 中的文本设置为按下“Ctrl + A”时的今天日期。

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


public class test {
        public static void main(String[] args) {

            JTextField fecha = new JTextField(10);

            /* add a new action named "foo" to the panel's action map */
            fecha.getActionMap().put("foo", new AbstractAction() {

                private static final long serialVersionUID = 1L;
                    public void actionPerformed(ActionEvent e) {
                        fecha.setText(java.time.LocalDate.now().toString());

                    }
                });


            InputMap inputMap = fecha.getInputMap();
            KeyStroke controlA =  KeyStroke.getKeyStroke("control A");
            inputMap.put(KeyStroke.getKeyStroke(Character.valueOf('a'), 0), "foo");
            inputMap.put(controlA, "foo");

            /* display the panel in a frame */
            JFrame frame = new JFrame();
            frame.getContentPane().add(fecha);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLayout(new GridBagLayout());
            frame.setSize(400, 400);
            frame.setVisible(true);

        }
}

推荐阅读