菜单有个方法是setAccelerator是CTRL+字母做为快捷键的
但是只有menu和menuitem可以用这个方法至于BUTTON我找到setMnemonic的方法
button.setMnemonic(KeyEvent.VK_C);可以设置成ALT加字母但是客户需求是设置为CTRL+字母,找了很多资料没找到。。
而且客户说以前其他开发人员提供这个功能的(不过不知道是否是JAVA语言)
所以再此确认下.. 急..
但是只有menu和menuitem可以用这个方法至于BUTTON我找到setMnemonic的方法
button.setMnemonic(KeyEvent.VK_C);可以设置成ALT加字母但是客户需求是设置为CTRL+字母,找了很多资料没找到。。
而且客户说以前其他开发人员提供这个功能的(不过不知道是否是JAVA语言)
所以再此确认下.. 急..
我找到keystroke时候也是KeyEvent.VK_C就直接ALT+C了,跟keystroke还是keypress没关系吧..... 谢谢额..
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
/**
*一个使用KeyStroke自定义快捷键的示例
*@author: Eastsun
*/
public class MnemonicT extends JFrame{
private int count =0;
private JButton button;
public MnemonicT(){
super("Mnemonic Test");
JPanel panel =new JPanel();
panel.setPreferredSize(new Dimension(320,240));
panel.setLayout(new FlowLayout());
button =new JButton(new AbstractAction("ClickTimes:"+count){
public void actionPerformed(ActionEvent e){
button.setText("ClickTimes:"+(++count));
}
});
panel.add(button);
add(panel);
InputMap im =button.getInputMap(JButton.WHEN_IN_FOCUSED_WINDOW);
im.put(KeyStroke.getKeyStroke("control A"),"buttonAction"); //按CTRL+A
button.getActionMap().put("buttonAction",button.getAction());
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
new MnemonicT().setVisible(true);
}
});
}
}
但是阅历不够.. 找不到 而且还是突然撞上来的需求 呼~~~
能否留个联系方式 or sth else联系...
或者把CTRL+A改成其他的试试.我自己运行是没问题.
我写的只是个简单的示例.
你想达到什么效果自己写个相应的Action,然后添加倒actionMap中去不就OK了吗..