Bonjour j'ai crée un jtabbedpane et dans l'un des onglets, j'ai rajouter deux boutons a savoir "suiv" et "prev" et j'aimerais pouvoir partir d'un onglet à un autre en cliquant sur l'un de ces boutons. Merci d'avance
Version imprimable
Bonjour j'ai crée un jtabbedpane et dans l'un des onglets, j'ai rajouter deux boutons a savoir "suiv" et "prev" et j'aimerais pouvoir partir d'un onglet à un autre en cliquant sur l'un de ces boutons. Merci d'avance
pour selection un onglet
deux possibilites
jTabbedPane1.setSelectedComponent(tonOnglet);
ou par indice (int)
jTabbedPane1.setSelectedIndex(indice);
je pense que c est plus la deuxieme que tu souhaites
Ta réponse marche bien sauf ke j'ai un petit sourcis avec ca. en fait j'ai créé le JTabbedPane dans une classe et les onglets renvoies vers des classes qui étend des JPanel lorsque je suis dans la classe dans laquelle j'ai crée le jtabbedpane et que j'essaie d'acceder à un autre onglet en utilisant la fonction SetSelectedComponent(mon onglet) ou setselectedindex(le numero) ca marche très bien. mais une fois que je suis dans une autre classe même en créant une instance de la classe principale. voici les bouts de code relatif à celà
/Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 //Classe dans laquelle je déclare le jtabbedpane qui s'appelle Clients public class Clients extends JDialog{ public JTabbedPane pane; public static int onglet = JTabbedPane.LEFT; public GUI(){ pane = new JTabbedPane(onglet); pane.addTab("", pan1); pane.setIconAt(0, new ImageIcon(getClass().getResource("/image/general.png"))); pane.add("", new adress_cl()); pane.setIconAt(1, new ImageIcon(getClass().getResource("/image/adress.png"))); pane.addTab("", new note_cl()); pane.setIconAt(2, new ImageIcon(getClass().getResource("/image/note.png"))); pane.addTab("", new photo_cl()); pane.setIconAt(3, new ImageIcon(getClass().getResource("/image/photo.png"))); pane.setBackground(Color.white); pane.setTabPlacement(1); } public Clients(){ GUI(); } }
il est a noter que le bouton est ajouter au panel et que je recois bien l'action du bouton car si je mets un System.out.Println("tes"); il s'affiche. j'ai placer tous celà dans un bloc try-catch et la console d'erreur me retourne un nulpointer execptionCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 / Extrait de la classe adress_cl public class adress_cl extends JPanel implements ActionListener{ private Clients ongl; public adress_cl(){ JButton prev = new JButton("Précédent"); prev.setLayout(new FlowLayout(FlowLayout.RIGHT)); prev.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ongl.pane.setSelectedIndex(3); } }); } }
J'ai résolu le problème en enlevant mes boutons dans le tabbedpane et ca marche très bien mais seulement vu que j'ai plus de deux tabbedpane, comment faire pourque une fois que l'utilisateur a cliquer sur le bouton "suivant" et que le tabbedpane suivant c'est ouvert et que si il clique a nouveau sur le bouton "suivant" qui est le même que précédement car il est hors du tabbedpane et par conséquent visible que le tabbedpane suivant s'ouvre.
Récapitulons: Je suis au pane0 et clique sur suivant il ouvre le pane1 comment faire pour que en cliquant sur le bouton suivant a nouveau qu'il m'ouvre le pane2?
Merci d'avance
CardLayout, plutôt ?
http://download.oracle.com/javase/tu...yout/card.html
Déjà sauf ke je ne sais pas trop comment m'y prendre merci de me passer un bout de code qui peut m'aider a mieux comprendre
Bonjour,
devrait marcher, nan ?Code:ongl.pane.setSelectedIndex((ongl.pane.getSelectedIndex() + 1)%nbOnglet)
UN PANEL EN CARDLAYOUT
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 JPanel cards; final static String BUTTONPANEL = "Card with JButtons"; final static String TEXTPANEL = "Card with JTextField"; JPanel card1 = new JPanel(); JPanel card2 = new JPanel(); cards = new JPanel(new CardLayout()); cards.add(card1, BUTTONPANEL); cards.add(card2, TEXTPANEL); // dans l'événement gérant l'afichage CardLayout cl = (CardLayout)(cards.getLayout()); cl.show(cards, BUTTONPANEL);
voila un petit exemple (une image par carte) de comment peut se présenter ton actionPerformed :
BOUTON 0 : montrer, 1 : image suivante, 2 : image précédente
Code:
1
2
3
4
5
6
7
8
9
10 public void actionPerformed (ActionEvent e) { if (e.getSource()==boutons[0]) ((CardLayout)jPanelCenter.getLayout()).show(jPanelCenter,labelImage[0]); if (e.getSource()==boutons[1]) ((CardLayout)jPanelCenter.getLayout()).next(jPanelCenter); if (e.getSource()==boutons[2]) ((CardLayout)jPanelCenter.getLayout()).previous(jPanelCenter); }
dans Netbeans :
avoir un panel, lui donner le layout cardLayout, changer si nécessaire son cardName (properties)
et par ex. dans jPanelCards, montrer celle qui a comme cardName "haut".
((CardLayout)jPanelCards.getLayout()).show(jPanelCards,"haut");
merci atha2 c'est exactement ce ke je cherchais.Citation:
Bonjour,
ongl.pane.setSelectedIndex((ongl.pane.getSelectedIndex() + 1)%nbOnglet)
devrait marcher, nan ?
mais que faire si je veux donner un keylistener aux onglets de mon TabbedPane