2016-07-19 7 views
1

У меня есть JTabbedPane в макете вкладки прокрутки, чтобы все вкладки хорошо сидели в одной строке. Есть ли способ разрешить пользователю прокручивать их с помощью колеса мыши или является единственным способом навигации по JTabbedPane.SCROLL_TAB_LAYOUT с помощью стрелок клавиатуры и графического интерфейса и нажатием на вкладки?Используйте мышь для прокрутки вкладок в JTabbedPane

ответ

4

я нашел ответ на этот вопрос, после того, как копаться автозаполнения в Eclipse: использовать MouseWheelListener для JTabbedPane:

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