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」カテゴリの記事
- 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)


