Bonjour tout le monde...
bon j'ai 2 problèmes:
1. J'aimerais savoir la manière correcte d'afficher une fenêtre (peu importe si c'est une JFrame ou non... d'abord qu'on puisse afficher du contenu dedans (genre composants swing)) par dessus une fenêtre active.
Ce que je fais présentement, c que jai un panel ouest qui représente un menu, quand je clique sur un élément,
je fais ceci :
//Va chercher le panel à afficher
GestionnairePages gen = new GestionnairePages(tabPageLinks.get(tt.locationToIndex(e.getPoint())));
//Enlève le panel de contenu actuel
panel.remove(panelEst);
//Set les propriétés du panel (genre couleurs etc!)
setUpPanelEst(true);
panelEst = gen.getPanel();
Il arrive, parfois, que le traitement de cette commande est long... (genre 3, 4 secondes !) Alors j'aimerais afficher une page (d'où le problème numéro1 ) de chargement par dessus ma JFrame.
présentement ce que je fais... (et que je trouve assez dégueux)
c'est que j'ajoute ma JFrame personnalisée de page d'attente directement à ma page de contenu... et j'attrape l'exception (dont je ne me rappelle plus le long, mais ça disait que j'avais pas le droit d'ajouter ce conteneur à un autre conteneur).
Ça marchait, mais je suis sûr que c'est pas la bonne technique.
Il y a aussi, que là, ma page d'attente ne s'affiche pas car apparemment, tout le processus se concentre à charger mon contenu donc il ne fait pas apparaitre ma page de chargement... il la fait appaitre une fois que c chargé, mais une fois que c loadé... il ferme la page de chargement évidemment... (c loadé..)
Donc comment faire pour qu'il fasse apparaitre obligatoirement ma page de chargement avant (comme c'est écrit dans le code) que le chargement soit fait.
Voici mon code:
//Si dans la BD ça indique que c'est une page longue à loader, on affiche la page d'attente.
if(!aPageAttente && tabTempsLinks.get(tt.locationToIndex(e.getPoint())).equals("LONG")){
try{
aPageAttente = true;
p = new PageAttente();
p.afficherAttente();
panelEst.add(p);
}catch(Exception ex){};
}
panel.revalidate();
panel.repaint();
GestionnairePages gen = new GestionnairePages(tabPageLinks.get(tt.locationToIndex(e.getPoint())));
panel.remove(panelEst);
setUpPanelEst(true);
panelEst = gen.getPanel();
//Une fois chargé, on rend invisible la page d'attente.
try {
if(aPageAttente){
aPageAttente = false;
p.setVisible(false);
}
} catch (NullPointerException ex) {}
Partager