Java.Swing.button绑定快捷键的3种办法
来源:互联网 发布:ajax.js 代码下载 编辑:程序博客网 时间:2024/06/08 10:30
1.使用button.setMnemonic方法,例如:jbtRemove.setMnemonic(java.awt.event.KeyEvent.VK_D);
public void registerKeyboardAction(ActionListener anAction, String aCommand, KeyStroke aKeyStroke, int aCondition)
public void registerKeyboardAction(ActionListener anAction, KeyStroke aKeyStroke, int aCondition)
参数:
anAction - 要注册的 Action
aCommand - 要在传递的事件中设置的命令
aKeyStroke - 与动作绑定的 KeyStroke
aCondition - 要符合的条件,见上文
也可以写作
3.使用监听器KeyAdapter。给控件添加键盘事件,也就是当键盘是的键按下时,会触发这个事件,然后调用keyPressed函数。无需alt
例如:
注意使用这个方法只能用alt+d才可以使用快捷键,可以看作是绑定了热键。
public void registerKeyboardAction(ActionListener anAction, String aCommand, KeyStroke aKeyStroke, int aCondition)
public void registerKeyboardAction(ActionListener anAction, KeyStroke aKeyStroke, int aCondition)
参数:
anAction - 要注册的 Action
aCommand - 要在传递的事件中设置的命令
aKeyStroke - 与动作绑定的 KeyStroke
aCondition - 要符合的条件,见上文
例如jbtRemove.registerKeyboardAction(new BtnActionListener(),KeyStroke.getKeyStroke(KeyEvent.VK_D,0), JComponent.WHEN_IN_FOCUSED_WINDOW);
BtnActionListener为自己写的一个实现ActionListener 接口的类,处理按钮的单击事件.
<span style="font-size:14px;">private class BtnActionListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubObject[] values = jlist.getSelectedValues();for(int i=0;i<values.length ;i++)listModel.remove(jlist.getSelectedIndex());//listModel.remove(jlist.getSelectedIndex());}}</span>
也可以写作
<span style="font-size:14px;">jbtRemove.registerKeyboardAction(new ActionListener() {Object[] values = jlist.getSelectedValues();for(int i=0;i<values.length ;i++)listModel.remove(jlist.getSelectedIndex());//listModel.remove(jlist.getSelectedIndex());}},KeyStroke.getKeyStroke(KeyEvent.VK_D,0),JComponent.WHEN_IN_FOCUSED_WINDOW);</span>
3.使用监听器KeyAdapter。给控件添加键盘事件,也就是当键盘是的键按下时,会触发这个事件,然后调用keyPressed函数。无需alt
例如:
<span style="font-size:14px;">jlist.addKeyListener(new KeyListener() {@Overridepublic void keyTyped(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void keyReleased(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void keyPressed(KeyEvent e) {// TODO Auto-generated method stubint keyCode=e.getKeyCode(); //获取按的键盘上的健if(keyCode==KeyEvent.VK_D ){ //比较Object[] values = jlist.getSelectedValues();for(int i=0;i<values.length ;i++)listModel.remove(jlist.getSelectedIndex());}}});</span>
这是源代码:
<span style="font-size:14px;">import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.DefaultListModel;import javax.swing.JApplet;import javax.swing.JButton;import javax.swing.JComponent;import javax.swing.JList;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.KeyStroke;public class ListModelDemo extends JApplet {private DefaultListModel listModel = new DefaultListModel();private JList jlist = new JList(listModel);private JButton jbtAdd = new JButton("Add new item");private JButton jbtRemove = new JButton("Remove selected item");public ListModelDemo(){listModel.addElement("Iteml");listModel.addElement("Item2");listModel.addElement("Item3");listModel.addElement("Item4");listModel.addElement("Item5");listModel.addElement("Item6");//jbtRemove.registerKeyboardAction(new BtnActionListener(), KeyStroke.getKeyStroke(KeyEvent.VK_D,0), JComponent.WHEN_IN_FOCUSED_WINDOW);//jbtRemove.setMnemonic(KeyEvent.VK_D);JPanel panel = new JPanel();panel.add(jbtAdd);panel.add(jbtRemove);add(panel,BorderLayout.NORTH);add(new JScrollPane(jlist), BorderLayout.CENTER);jbtAdd.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubString newItem = JOptionPane.showInputDialog("Enter a new item");if(newItem!=null){if(jlist.getSelectedIndex()==-1)listModel.addElement(newItem);elselistModel.add(jlist.getSelectedIndex(), newItem);}}});jbtRemove.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubObject[] values = jlist.getSelectedValues();for(int i=0;i<values.length ;i++)listModel.remove(jlist.getSelectedIndex());//listModel.remove(jlist.getSelectedIndex());}});jlist.addKeyListener(new KeyListener() {@Overridepublic void keyTyped(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void keyReleased(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void keyPressed(KeyEvent e) {// TODO Auto-generated method stubint keyCode=e.getKeyCode(); //获取按的键盘上的健if(keyCode==KeyEvent.VK_D ){ //比较Object[] values = jlist.getSelectedValues();for(int i=0;i<values.length ;i++)listModel.remove(jlist.getSelectedIndex());}}});}private class BtnActionListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubObject[] values = jlist.getSelectedValues();for(int i=0;i<values.length ;i++)listModel.remove(jlist.getSelectedIndex());//listModel.remove(jlist.getSelectedIndex());}}}</span>
1 0
- Java.Swing.button绑定快捷键的3种办法
- Java Swing快捷键和按键绑定
- button按钮绑定快捷键
- Java Swing 添加快捷键
- Swing中button的使用
- java swing JTable绑定值
- 【Java】可视化Swing中JTable控件绑定SQL数据源的两种方法
- button实现超链接的办法
- java swing 菜单栏 JMenuItem 设置快捷键的组合键
- Java Swing使用注解绑定事件监听
- [Android]Button连续点击的处理办法
- java swing给按钮添加快捷键
- Java Swing 在 JTable 中给 JCheckbox 绑定事件的方法
- Java语言学习--Swing中Button事件监听
- java swing中快捷键和快捷键加速器区别
- java swing的四种常用布局
- Swing中快捷键的问题[TextArea]
- [原创]Swing中快捷键的问题[TextArea]
- 中位数和顺序统计
- leetcode.239. Sliding Window Maximum
- javascript语法之Date对象与小案例
- 微信插件化架构开发
- 数据库设计备份还原(二)
- Java.Swing.button绑定快捷键的3种办法
- BZOJ 1046 DP 逆求最长下降序列+枚举
- 【bzoj2120】数颜色
- Javascript基础知识盲点总结——继承
- 国内使用东软镜像更新Android SDK很方便
- 哈理工OJ 2002 幂集(DP问题)
- c++第6次作业
- 某Trie树的简单例题
- Java大牛养成记(8)——何为servlet?