Swing/WheelCombo のバックアップの現在との差分(No.4)
2021-11-16 (火) 08:22:44
概要
JComboBox
にフォーカスがある場合、その値をMouseWheel
の上下で変更します。
Screenshot
Advertisement
サンプルコード
#spanend
#spanadd
JComboBox<String> combo = makeComboBox();
#spanend
#spanadd
combo.addMouseWheelListener(new MouseWheelListener() {
#spanend
@Override public void mouseWheelMoved(MouseWheelEvent e) {
JComboBox<?> source = (JComboBox<?>) e.getComponent();
if (!source.hasFocus()) {
return;
}
int ni = source.getSelectedIndex() + e.getWheelRotation();
if (ni >= 0 && ni < source.getItemCount()) {
source.setSelectedIndex(ni);
}
}
#spanadd
});
#spanend
#spanadd
View in GitHub: Java, Kotlincombo.addMouseWheelListener(new MouseWheelListener() { public void mouseWheelMoved(MouseWheelEvent e) { JComboBox source = (JComboBox) e.getSource(); if(!source.hasFocus()) return; int ni = source.getSelectedIndex() + e.getWheelRotation(); if(ni>=0 && ni<source.getItemCount()) { source.setSelectedIndex(ni); } } });
解説
上記のサンプルでは、JComboBox
にMouseWheelListener
を設定しJComboBox
にフォーカスがある場合はマウスホイールの上下回転イベントに反応して表示内容を順次変更しています。