绑定到Enter)"/>
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这门语言的深奥之处,同时也使我离对象进了一步!
更多推荐
Java工具类的运用(使JTextField绑定到Enter)
发布评论