2016-07-19 4 views
1

スクロールタブのレイアウトにJTabbedPaneがあります。その結果、すべてのタブが1つの行にうまく収まるようになります。ユーザーがマウスホイールを使ってスクロールできる方法はありますか、またはキーボードとGUIの矢印を使ってJTabbedPane.SCROLL_TAB_LAYOUTをナビゲートし、タブをクリックする唯一の方法はありますか?マウスを使用してJTabbedPaneのタブをスクロールします

答えて

4

私は、Eclipseのオートコンプリートの周りに掘った後、これに対する答えを見つけた:JTabbedPaneためMouseWheelListenerを使用します。

JTabbedPane tabbedPane = new JTabbedPane(); 
tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); 
tabbedPane.addMouseWheelListener(new MouseWheelListener() { 
    @Override 
    public void mouseWheelMoved(MouseWheelEvent e) { 
     JTabbedPane pane = (JTabbedPane) e.getSource(); 
     int units = e.getWheelRotation(); 
     int oldIndex = pane.getSelectedIndex(); 
     int newIndex = oldIndex + units; 
     if (newIndex < 0) 
      pane.setSelectedIndex(0); 
     else if (newIndex >= pane.getTabCount()) 
      pane.setSelectedIndex(pane.getTabCount() - 1); 
     else 
      pane.setSelectedIndex(newIndex); 
    } 
}); 

これは、タブの上にマウスのスクロールを可能にし、JTabbedPaneのインデックス境界を尊重し、両方の。

誰かがより良い回答をお持ちでしたら、私は同意していただきたいと思います!

+0

あなたはこれをどこから見つけましたか?リンク? –

+0

@HovercraftFullOfEels私はイベントリスナーを検索するためにEclipseのオートコンプリートを使用し、コードを思いついた。 (tabbedPaneは実際には自分のプログラムで使用する名前であり、チュートリアルの一般名ではありません) – 17slim

+0

これは必要な場合や望ましい場合は、もっと詳細なチュートリアルを見て回ることができますか? – 17slim

関連する問題