2010-12-07 25 views
0

J'essaie de créer un JTabbedPane avec des onglets disposés verticalement à gauche avec SCROLL_TAB_LAYOUT. L'extrait de code pour c'est comme ci-dessous:Comment puis-je faire glisser des onglets dans JTabbedPane


private Component createTabbedPane() 
{ 
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.LEFT, 
    JTabbedPane.SCROLL_TAB_LAYOUT); 
for (int i = 0; i < 20; i++) { 
    JPanel pane = new JPanel(); 
    pane.add(new JLabel("This is Panel " + i)); 
    tabbedPane.addTab("Tab " + i, pane); 
} 
return tabbedPane; 
} 

Cependant, je veux avoir la même fonction de défilement avec la souris traîné afin qu'il puisse être utilisé pour l'écran tactile. Est-il possible d'utiliser des écouteurs de souris sur les onglets?

+1

Cela vous serait utile. Jetez un oeil à http://stackoverflow.com/questions/60269/how-to-implement-draggable-tab-using-java-swing et http://java-swing-tips.blogspot.com/2008/04 /drag-and-drop-tabs-in-jtabbedpane.html. Le lien de poing est plus simple. –

Répondre

1

Vous pouvez ajouter mouseListners aux onglets eux-mêmes ou aux composants de l'onglet.

+0

J'ai essayé en remplaçant la méthode processMouseEvent et la méthode processMouseMotionEvent pour faire glisser la souris. Cela fonctionne bien pour un jtable, mais ne fonctionne pas pour jtabbedpane. Quelle méthode dois-je modifier pour obtenir ce comportement de glissement? –

+0

Pouvez-vous développer sur "ne fonctionne pas" et ce que vous avez essayé? – jzd

+0

Salut, j'essayé ce qui suit:
processMouseEvent protected void (MouseEvent e) { \t \t \t \t interrupteur (e.getID()) { \t \t \t \t cas MouseEvent.MOUSE_PRESSED: \t \t \t \t \t startPoint = e. getPoint(); \t \t \t \t \t rupture; \t \t \t \t} \t \t \t \t super.processMouseEvent (e); \t \t \t}