아래 코드는 키보드에서 control + A를 눌렀을 때 텍스트를 출력하고 시스템 트레이에 이미지를 표시하는 테스트 가능한 클래스입니다. 이것은 모두 운영 체제에서 지원하는 시스템 트레이에 따라 다릅니다.MenuShortcut KeyEvent가 작동하지 않습니다.
내 문제는 내가 + A 컨트롤을 밀 때 텍스트가 인쇄되지 않는다는 것입니다. 시스템 트레이에서 항목을 누르면 인쇄됩니다. 기본 Shift 키도 눌러야 할 것을 요구하는대로의 MenuItem이 생성자()
MenuShortcut shortcut = new MenuShortcut(KeyEvent.VK_A, false);
을 시도해야 같은 API에서
/**
*
* @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는 포커스가없는 응용 프로그램에서는 작동하지 않으며 답변도 놀랍지도 여전히 동일합니다! –