• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JComboBoxの値をMouseWheelで変更
#navi(../)
*JComboBoxの値をMouseWheelで変更 [#i7ef2fc7]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2004-11-15~
更新日:&lastmod;
---
category: swing
folder: WheelCombo
title: JComboBoxの値をMouseWheelで変更
tags: [JComboBox, MouseWheelListener]
author: aterai
pubdate: 2004-11-15T02:34:50+09:00
description: JComboBoxにフォーカスがある場合、その値をMouseWheelの上下で変更します。
image: https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTWm95sa5I/AAAAAAAAApg/1tiQsmg5QKw/s800/WheelCombo.png
---
* 概要 [#summary]
`JComboBox`にフォーカスがある場合、その値を`MouseWheel`の上下で変更します。

#contents
#download(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTWm95sa5I/AAAAAAAAApg/1tiQsmg5QKw/s800/WheelCombo.png)

**概要 [#fb21376c]
JComboBoxにフォーカスがある場合、その値をMouseWheelの上下で変更します。
* サンプルコード [#sourcecode]
#code(link){{
JComboBox<String> combo = makeComboBox();
combo.addMouseWheelListener(new MouseWheelListener() {
  @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);
    }
  }
});
}}

#screenshot
* 解説 [#explanation]
上記のサンプルでは、`JComboBox`に`MouseWheelListener`を設定し`JComboBox`にフォーカスがある場合はマウスホイールの上下回転イベントに反応して表示内容を順次変更しています。

**サンプルコード [#ef581a0a]
 combo.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);
     }
   }
 });
* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/java/awt/event/MouseWheelListener.html MouseWheelListener (Java Platform SE 8)]

-&jnlp;
-&jar;
-&zip;

**解説 [#r2f99b4c]
上記のサンプルでは、一番上のコンボボックスにMouseWheelListenerを設定しています。マウスホイールの上下回転に反応して、表示される内容が順次移動するようになっています。

//**参考リンク
**コメント [#ebca23c2]
* コメント [#comment]
#comment
#comment