Mac の JPopupMenu の不具合の回避(2)
Mac の JPopupMenu の不具合の回避で,極くまれに右クリック後にフリーズしてしまうことがあった orz。AWTEventListener をつける方法に変更してみた。これでまたしばらく様子を見る。
ui/MyJPopupMenu.java
public class MyJPopupMenu extends JPopupMenu {
private AWTEventListener listener;
private Component invoker;
private int x;
private int y;
public MyJPopupMenu() {
listener = new EventListener();
}
@Override
public void show(Component invoker, int x , int y) {
// 他のアプリケーションからクリックされたとき
com.apple.eawt.Application.getApplication().requestForeground(true);
this.invoker = invoker;
this.x = x;
this.y = y;
Toolkit.getDefaultToolkit().addAWTEventListener(listener, AWTEvent.MOUSE_EVENT_MASK);
}
// MOUSE_RELEASED を検出する Listener
private class EventListener implements AWTEventListener {
public void eventDispatched(AWTEvent event) {
if (event.getID() == MouseEvent.MOUSE_RELEASED) {
superShow();
}
}
}
public void superShow() {
Toolkit.getDefaultToolkit().removeAWTEventListener(listener);
super.show(invoker, x, y);
}
« 年齢ソート | トップページ | シェーマエディタの機能アップ »
「OpenDolphin」カテゴリの記事
- OpenDolphin: Java 25 / WildFly 38 への移行(2025.11.09)
- 運用17年目のまとめ(2025.02.03)
- IME on/off の切換 - その2(2024.12.02)
- OrcaController オルコン(2024.11.28)
- OpenDolphin: java 21 / wildfly 34 への移行(2024.11.08)


