mac の SelectionListener の挙動不審
スタンプを編集しているとき,テーブルを選択したときに削除ボタンが有効にならないことが時々あった。たまにしか起きないので,原因を探るのが難しかったが,やっと分かった。
SelectionListener で valueChanged が呼ばれるとき,getValueIsAdjusting() が true で呼ばれた後,普通は false でもう一回呼ばれるのだが,なぜかたまに true で呼ばれたまま false が呼ばれないことがあることが分かった。とりあえず,削除ボタンを制御している SelectionListener の getValueAdjusting() 判定をコメントアウトして対応した。クリックをドラッグと認識したまま次のマウスクリックまで放置になっている可能性がある。
SelectionListener で valueChanged が呼ばれるとき,getValueIsAdjusting() が true で呼ばれた後,普通は false でもう一回呼ばれるのだが,なぜかたまに true で呼ばれたまま false が呼ばれないことがあることが分かった。とりあえず,削除ボタンを制御している SelectionListener の getValueAdjusting() 判定をコメントアウトして対応した。クリックをドラッグと認識したまま次のマウスクリックまで放置になっている可能性がある。
order/MedicineTablePanel.java
m.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { // 普通に select しても true を1回呼んだ後,知らんプリすることがあるのの workaround // true と false で notifySelectedRow() が2回呼ばれてしまうが,この場合問題ない // if (e.getValueIsAdjusting() == false) { notifySelectedRow(); //} } });
« Mac の JPopupMenu の不具合の回避 | トップページ | サーバを全て ubuntu 8.04LTS に移行 »
「OpenDolphin」カテゴリの記事
- WildFly 25 へのアップデート(2021.12.21)
- 13年目の運用まとめ(2021.02.04)
- スタンプの簡易表示(2020.09.04)
- Java 1.8.0_261 での apple.awt.brushMetalLook(2020.07.26)
- Undo の充実 (4) StampEditor, StampTree(2020.07.23)