下面的代碼是一個可測試的類,它應該在控制鍵+ A被按下時在鍵盤上打印出一些文本,並且還會在系統托盤中顯示一個圖像。這完全取決於您的操作系統支持的系統托盤。MenuShortcut KeyEvent不工作
我的問題是,當我按下control + A時,文本沒有被打印出來,只有當我按下系統托盤中的項目時纔會打印文本。
/**
*
* @author Tyluur
* @since Aug 23, 2013
*/
public class Testable {
public static void main(String... args) {
registerTrayItems();
}
private static void registerTrayItems() {
if (SystemTray.isSupported()) {
SystemTray tray = SystemTray.getSystemTray();
TrayIcon icon = null;
MenuShortcut shortcut = new MenuShortcut(KeyEvent.VK_A);
MenuItem menuItem = new MenuItem("Toggle", shortcut);
menuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.err.println("The action has been called!");
}
});
PopupMenu popup = new PopupMenu();
popup.add(menuItem);
try {
icon = new TrayIcon(new ImageIcon(new URL("http://i.imgur.com/xQoz2TN.png")).getImage(), "Typer", popup);
tray.add(icon);
} catch (MalformedURLException | AWTException e) {
e.printStackTrace();
}
}
}
}
''我做錯了什麼?'' - 一個,不發表[sscce](http://sscce.org)。請張貼我們可以測試,修改和運行的代碼。 –
它已更新爲SSCCE。 – Tyluur
地獄,你爲什麼要問同樣的問題兩次?我們在你之前的問題中告訴過你,Java不會以這種方式工作,KeyListeners不適用於沒有焦點的應用程序,而且答案也不會令人驚訝,它仍然是一樣的! –