Java工具类的运用(使JTextField绑定到Enter)

    最近在写校园导航项目的时候遇到一个小问题,怎么将Enter按钮绑定到一个容器上去,在经过八方查找以后,确实找到了最简单的实现方案,只需要加上一句话,即可使一个按钮绑定到Enter键,即在按下Enter时直接触发一个按钮事件,先来看看代码:

JFrame.getRootPane().setDefaultButton(JButton);

    其中JFrame是顶级容器,JButton则是需要绑定的按钮.但是这样的绑定方式却显得不够灵活,在经过又一番漫长的学习过程后,我学会了一点点工具类的应用,工具类,顾名思义,就是指工具,在这个类中,存在这许多的静态方法,这代表这你可以不需要新增一个这个类的对象,直接调用方法即可打到使用工具类的目的,这次写的工具类是将Enter键绑定到JTextField与JButton中,当这两个容器获得焦点,并按下回车时,可以直接触发用工具类注入的事件.先看看代码

package componet;

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

public class SwingUtils {
    //为JButton添加回车事件
    public static void enterPressesWhenFocused(JButton button) {
        button.registerKeyboardAction(button.getActionForKeyStroke(KeyStroke
                        .getKeyStroke(KeyEvent.VK_SPACE, 0, false)),
                KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false),
                JComponent.WHEN_FOCUSED);

        button.registerKeyboardAction(button.getActionForKeyStroke(KeyStroke
                        .getKeyStroke(KeyEvent.VK_SPACE, 0, true)),
                KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, true),
                JComponent.WHEN_FOCUSED);
    }
    //为JTextField添加回车事件
    public static void enterPressesWhenFocused(JTextField textField, ActionListener actionListener) {
        textField.registerKeyboardAction(actionListener,
                KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false),
                JComponent.WHEN_FOCUSED);

        textField.registerKeyboardAction(actionListener,
                KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, true),
                JComponent.WHEN_FOCUSED);
    }
}

使用基本方法就是调用SwingUtils.enterPressesWhenFocused();

方法的参数可以是一个Button,也可以是TextField,但不同的是加入Button不需要写事件,而加入的事TextField则需要写一个点击事件,从而达到按下回车触发这个事件.

这次工具类的使用也越发使我了解到了JAVA这门语言的深奥之处,同时也使我离对象进了一步!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值