Modification d'un JPanel en cours d'éxecution
Bonjour à tous,
Mon programme est JFrame avec des boutons.
Si on actionne un bouton on ouvre une JDialogue composée de plusieurs onglet.
Chaque onglet est créé par une classe qui retourne le JPanel à mettre dans l'onglet.
Code:
tabPan.addTab("Statique", staticTab.getStatic());
Cette classe qui créer ce 1er JPanel qui sera le contenu de l'onglet appelle une autre classe pour créer un autre JPanel (le 2nd) qui composera une partie du précédent JPanel.
Code:
panStaticS.add(liste.getStaticRouteListe());
Ce deuxième JPanel est composé de deux boutons, un boutons ajoute un élément en dessous de ces deux boutons, dans le but de créer une sorte de "liste", le deuxième supprime quand on coche un élément ajouté dans cette "liste".
L’élément en question est un petit JPanel[] composé seulement d'un JCheckBox qui aura les informations rentrée dans un JTextField situé dans le 1er JPanel.
Ma méthode "Ajouter" fonctionne bien, l'ActionListener du 2nd JPanel appelle une méthode située dans le 1er JPanel
Code:
1 2 3 4 5 6 7 8
| class Ajouter implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
Static.AjouterStatique();
}
} |
qui retourne toutes les info nécessaire pour utiliser une méthode de ma classe "Actions"
Code:
1 2 3 4 5 6 7 8 9
| public static void AjouterStatique()
{
if(panRoute.ipText.getText().equals("") || panRoute.nextText.getText().equals("") )
{
Actions.BadIp();
}
else Actions.AjouterStatique(panRoute.ipText.getText(), panRoute.maskText.getText(), panRoute.nextText.getText());
} |
qui va dans un premier temps enregistrer les info dans des variables de la classe "Memoire", et dans un second temps créer le petit JPanel[], le petit JcheckBox[], au rang définie par la variable int longueur qui sera incrémenter à la fin.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
public static void AjouterStatique(String addIp, String masque, String next)
{
if(IsValidIp(addIp) && IsValidIp(masque) && IsValidIp(next))
{
Memoire.staticRoutesIP[Memoire.longueur] = addIp;
Memoire.staticRoutesMask[Memoire.longueur] = masque;
Memoire.staticRoutesNext[Memoire.longueur] = next;
Memoire.box[Memoire.longueur] = new JCheckBox("IP : " + addIp + " Masque : " + masque + " Suivant : " + next);
Memoire.gbcGene.gridy = Memoire.longueur;
Memoire.liste[Memoire.longueur] = new JPanel(new GridBagLayout());
Memoire.liste[Memoire.longueur].setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.gray));
Memoire.liste[Memoire.longueur].add(Memoire.box[Memoire.longueur], Memoire.gbcGene);
Memoire.longueur++;
}
else
{
BadIp();
}
} |
Voila, maintenant mon problème: Comment "actualiser" la page pour que les modifications du 2nd JPanel s'affiche dans ma JDialog?
Ou alors comment simplifier 1000 fois les choses en créant une liste "dynamique"?
Bon, j’espère que je ne vous ai pas trop effrayé ^^
Merci d'avance!
Thomas