Creation dynamique d'onglet
Bonjour,
Je suis un débutant sous swing (et dans le forum) qui cherche de l'aide.
Je dois trouver un moyen de creer dynamiquement des onglets dans un JTabbedPane (lors d'un clic sur un bouton).
D'abord est ce possible?
J'ai fais une application avec un bouton et un JTabbedPane, dans ma logique ca aurait du marcher mais évidemment ca marche pas.Quand je clique sur le bouton des erreurs étranges s'affiche en bas et mon onglet n'apparait pas.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
package finalpkg;
import java.awt.FlowLayout;
import java.awt.Dimension;
import java.awt.image.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class Fprincipale extends JFrame implements ActionListener
{
JPanel container =null; //le container qui contien l'ensemble de la fenetre'
FlowLayout layout = null; //le layout pour positionner les éléments de la fenetre
JLabel texte=null; // le texte du bouton
JButton bouton=null; //le bouton d'ajout
JTabbedPane onglet=null; // le systeme d'onglet
JPanel pan1=null; //notre premier onglet on met un texte
JPanel pan2=null; //notre deuxieme onglet on met le Panel special graph
public Fprincipale()
{
super();//on appel le construction de JFrame
setContentPane(MKonglet()); //appliquer le texte !!!!!avant les autres initialisations !!!!!
setTitle("le test de swing"); //on donne un nom a la fenetre
setSize(320,240); //taille de la fenetre
setLocationRelativeTo(null); //centre sur lecran ?????
setResizable(true) ; //redimentionnement de la fenetre (true ou false)
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //fermeture de la fentre lors du cik sur la croix
setVisible(true);
}
JPanel MKonglet()
{
container=new JPanel();
layout = new FlowLayout(); //On cree un layout
layout.setAlignment(FlowLayout.LEFT);//On centre les composants
bouton = new JButton () ;//Création du bouton
bouton.setPreferredSize(new Dimension(125,25)) ;//On lui donne une taille
bouton.setText("Cliquer ici") ;//On lui donne un texte
bouton.addActionListener(this);//On ajoute la fenêtre en //tantqu'écouteurdubouton
container.add(bouton);//On ajoute le bouton à la fenêtre
JTabbedPane onglet = new JTabbedPane();
JPanel pan1 = new JPanel();
pan1.setPreferredSize(new Dimension(250,250));
pan1.add(new JLabel("Je suis dans l'onglet 1"));
//etc
pan2 = new GraphPanel(); //GraphPanel c un Jpanel special.
pan1.setPreferredSize(new Dimension(250,250));
//pan2.add(new JLabel("Je suis dans l'onglet 2"));
//Tu les ajoutes enfin dans ton JTabbedPane
onglet.addTab("Titre onglet 1", pan1);
onglet.addTab("Titre onglet 2", pan2);
container.add(onglet);//On ajoute l'ensemble d'onglet au container
container.setLayout(layout); //On applique le layout au container
return container;
}
//action du bouton
public void actionPerformed(ActionEvent e) {
if(e.getSource() == bouton){ //Si laction émane bien du bouton
JPanel pan = new JPanel();
onglet.addTab("encore un onglet", pan); //j'ajoute le nouveau JPanel au JTabbedPane
}
}
} |
j'avoue que dans l'action du bouton je pense qu'il manque quelque chose.
Merci d'avance.