Ajout JPanel dans JTabbedPane

Résolu
riderfun Messages postés 98 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 11 janvier 2010 - 2 févr. 2009 à 17:19
amirkel Messages postés 4 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 12 septembre 2009 - 12 août 2009 à 02:00
Bonjour, pour mes projets je souhaite créer une sorte de paint en java et la possibilité d'avoir plusieurs onglet separés.
J'arrive à créer les onglets mais je voudrais pouvoir traiter différement ces onglets comme la couleur de fond ect...
Voici mon code pour créer les onglets:
private JMenuItem getNewOnglet() {
        if (NewOnglet == null) {
            NewOnglet = new JMenuItem();
            NewOnglet.setText("Nouvel onglet");
            NewOnglet.setToolTipText("Ajouter un onglet");
            NewOnglet.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,
                    KeyEvent.CTRL_DOWN_MASK));
            NewOnglet.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    nbOnglet = nbOnglet + 1;
                    if (nbOnglet >= 10) {
                        JOptionPane.showMessageDialog(null,
                                "Vous ne pouvez dépasser 10 onglets!",
                                "Erreur", JOptionPane.WARNING_MESSAGE);
                    } else {
                        TabbedPane.insertTab("Panneau" + nbOnglet, null, null,
                                "Onglet", nbOnglet);
                        System.out.println("Nombre onglet: " + nbOnglet);
                    }

                }
            });
        }
        return NewOnglet;
    }
et voici pour modifier la couleur de fond:
private JButton getBtnMulti() {
        if (btnMulti == null) {
            btnMulti = new JButton();
            btnMulti.setIcon(new ImageIcon("images/multi.png"));
            btnMulti.setToolTipText("Choix de la couleur");
            btnMulti.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    System.out.println("####### Choix couleur #######");
                    Color coul = JColorChooser.showDialog(null,
                            "Couleur de fond", Color.WHITE);
                    System.out.println("Choix de la couleur " + coul);
                    Panel1.setBackground(coul);

                }
            });
        }
        return btnMulti;
    }
Merci par avance

32 réponses

riderfun Messages postés 98 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 11 janvier 2010
3 févr. 2009 à 15:20
Oui c'est super déjà ça réssoud ce problème....
0
riderfun Messages postés 98 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 11 janvier 2010
3 févr. 2009 à 15:23
Mais maintenant je voudrais traiter ces panel indépendement ... je sais je suis vraiment pas doué....
0
riderfun Messages postés 98 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 11 janvier 2010
3 févr. 2009 à 15:25
je pense qu'il faudrait que je récupère l'index de l'onglet selectionné non? mais comment le traiter après?
0
riderfun Messages postés 98 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 11 janvier 2010
3 févr. 2009 à 15:35
C'est bon j'ai trouvé! en fait c'est vraiment tout bête....
Si quelqu'un cherche un jour à faire cela en fait il suffit de faire :
private JButton getBtnMulti() {
        if (btnMulti == null) {
            btnMulti = new JButton();
            btnMulti.setIcon(new ImageIcon("images/multi.png"));
            btnMulti.setToolTipText("Choix de la couleur");
            btnMulti.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    System.out.println("####### Choix couleur #######");
                    Color coul = JColorChooser.showDialog(null,
                            "Couleur de fond", Color.WHITE);
                    getPanneau().setBackground(coul);
                    System.out.println("Choix de la couleur " + coul);

                    ConteneurOnglet.getSelectedComponent().setBackground(coul);
                }
            });
        }
        return btnMulti;
    }
Pour changer la couleur et ainsi pour fermer un onglet en double cliquant dessus:

private JTabbedPane getConteneurOnglet() {
        if (ConteneurOnglet == null) {
            ConteneurOnglet = new JTabbedPane();
            ConteneurOnglet.addTab("Panneau", getPanneau());
            ConteneurOnglet.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent e) {
                    if (e.getClickCount() == 2) {
                        ConteneurOnglet.remove(ConteneurOnglet
                                .getSelectedIndex());
                    }
                }
            });
        }
        return ConteneurOnglet;
    }

Merci encore de ta précieuse aide!!j'ai compris plein de truc finalement!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
riderfun Messages postés 98 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 11 janvier 2010
3 févr. 2009 à 15:36
On ne peut pas éditer mais il faut enlever la ligne
"getPanneau().setBackground(coul);"
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
3 févr. 2009 à 15:41
Salut,

Non mais la seule chose à faire c'est créer un nouveau panel à chaque fois que tu rajoutes un tabbedPane.

Donc maintenant à toi de voir... Est ce qu'il serait pas intéressant de créer une classe extends de JPanel qui contiendrait tous les composants graphiques que tu as besoin dans ce JPanel?

Par exemple dans tes JPanel, tu as besoin d'un JLabel, d'un JTextArea et d'un JButton... ben tu crées une classe extends de JPanel avec ces composants à l'intérieur et puis lorsque tu rajoutes ton JTabbedPane ça donnerait ça :

TaNouvelleClasse test = new TaNouvelleClasse();
getTabbedPane().addTab("Panneau" + nbOnglet, test);

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
3 févr. 2009 à 15:43
Salut,

Et pour ton futur, essais d'éviter d'appeler des variables avec une majuscule en début, c'est plutot réservé aux classs ça, hein?

Allé bonne continuation

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
0
riderfun Messages postés 98 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 11 janvier 2010
3 févr. 2009 à 15:46
ok merci beaucoup,
et c'est ce que je pensais faire pour la zone de dessin, créer une classe dérivée de JPanel et contenant les composants graphique selon la selection des boutons avec getters/setters....
Je reviendrai surement te demander un coup de main...
Merci pour ta précieuse aide et je vais remédier aux noms de mes variables....
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
3 févr. 2009 à 16:01
Salut,

Tiens je vais te dégouter un cou... J'ai déjà fais un Paint en Java avec un Design Pattern "Decorateur" en plus!!!

Il était niquel : changement de la couleur de fond, changement de la couleurs des traits (chaque trait avec SA couleur), différentes formes possibles (carré, rond, trait) avec différent style (plein ou vide pour les carrés et les ronds)

 Comme quoi c'est faisable, donc go!!!

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
0
riderfun Messages postés 98 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 11 janvier 2010
3 févr. 2009 à 16:05
lol ben merci!!
je vais pouvoir continuer à t'embêter alors ^^
mais tu pourrais me passer les sources pour jeter un coup d'oeil ou pas?
notament dans le cas pour tracer les lignes ect...
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
3 févr. 2009 à 16:09
Salut,

Je verrai ça chez moi, voir si j'ai encore les sources... Ca serait bête que je les ai plus mais normalement c'est bon. A voir. Mais si je les retrouve, je les proposerai surement sur le forum là

Bonne continuation

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
0
amirkel Messages postés 4 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 12 septembre 2009
12 août 2009 à 02:00
Bonjour
SVP je voudrais ajouter plusieurs JPanel qui se trouvent dans differentes classes dans un JTabbedPane qui se trouve dans une classe a part!
j'arrive a créer les onglets mais je veux leur affecter les JPanel qui se trouvent dans les autres classes que j'ai crée!
aidez moi svp je suis bloqué !
j'ai regardé vos méthodes mais jy arrive pas!
merci d'avance pour la réponse!
a+
0
Rejoignez-nous