在我的程序中,有一個包含許多加速器的JMenu和一個可編輯的JTable。問題是,在編輯JTable時,加速鍵仍然被觸發。例如,如果我在jtable單元格中輸入字母'n',則'下一個'菜單選項也會被觸發。JTable單元格編輯是否可以使用鍵擊?
如何才能讓jtable單元格編輯器獨佔地使用擊鍵?
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JTable;
import javax.swing.KeyStroke;
import java.awt.event.KeyEvent;
import java.awt.Toolkit;
public class SampleClass{
public SampleClass(){
JFrame frame = new JFrame();
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu();
JMenuItem item = new JMenuItem();
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, 0));
item.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Toolkit.getDefaultToolkit().beep();
}
});
JTable table = new JTable(new Object[][]{{"Hello","World"},{"Goodbye","World"}}, new String[]{"A","B"});
menu.add(item);
menuBar.add(menu);
frame.setJMenuBar(menuBar);
frame.add(table);
frame.pack();
frame.show();
}
public static void main(String[] args){
new SampleClass();
}
}
編輯上表中的任何單元格,都會有一個菜單項設置爲加速器'n'發出嗶聲。