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」カテゴリの記事
- Java 17 への移行(7) - OpenDolphin client の対応 (2023.02.04)
- Java 17 への移行(6) - Hibernate 6 でやらかす(2023.02.03)
- Java 17 への移行(5) - OpenDolphin server の対応(2023.02.02)
- Java 17 への移行(4) - OpenSearch の準備 [ubuntu 編](2023.02.01)
- Java 17 への移行(3) - OpenSearch の準備 [mac 編](2023.01.31)