Bonjour
J'ai 2 problèmes qui me semblent simples, mais malgrés tous mes efforts,
je n'arrive pas à les résoudre.
1/ l'affichage d'une JInteralFrame prend du temps (nombreuses données à
récupérer dans différents fichiers). J'ai donc décider d'afficher un
message (non bloquant) pendant le "chargement". J'ai opté pour
l'affichage d'une simple frame (JOptionPane est bloquant):
JFrame frame = new JFrame("Please wait");
JLabel label = new JLabel("Please wait while loading the file");
frame.getContentPane().add(label, BorderLayout.CENTER);
//frame.pack();
frame.setSize(400, 100);
frame.setVisible(true);
Rien à y faire, le label ne s'affiche pas dans la frame!
Je me demande également s'il n'y a rende plus élégant comme message
d'attente.
2/ Dans TabPane, j'affiche des Panel contenant une JTable:
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("user.dat",null, userDatPanel(), "Display user.dat");
...
public JPanel userDatPanel() {
JPanel userDatPanel = new JPanel();
...
JTable table = new JTable (data, columns);
JScrollPane scrollpane = new JScrollPane(table);
userDatPanel.add(scrollpane);
return userDatPanel;
}
Problème: le Panel ne prend pas toute la place disponible dans le
TabPane, les colonnes de la JTable sont donc trop étroites.
J'ai essayé des choses comme scrollpane.setMinimumSize (new
Dimension(700, 500)), userDatPanel.setSize (700, 500) mais la taille du
Panel ne veut pas changer.
Je suis débutant, mais j'ai fait des choses plus compliquées que ces 2
problèmes. C'est frustrant de rester bloquer sur des problèmes de bases
comme ceux ci-dessus.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Black Myst
julien wrote:
Bonjour J'ai 2 problèmes qui me semblent simples, mais malgrés tous mes efforts, je n'arrive pas à les résoudre.
1/ l'affichage d'une JInteralFrame prend du temps (nombreuses données à récupérer dans différents fichiers). J'ai donc décider d'afficher un message (non bloquant) pendant le "chargement". J'ai opté pour l'affichage d'une simple frame (JOptionPane est bloquant):
JFrame frame = new JFrame("Please wait"); JLabel label = new JLabel("Please wait while loading the file"); frame.getContentPane().add(label, BorderLayout.CENTER); //frame.pack(); frame.setSize(400, 100); frame.setVisible(true);
Rien à y faire, le label ne s'affiche pas dans la frame! Charge ton fichier dans un autre Thread et comme par magie, le thread
d'evenement pourra venir afficher ta fenetre...
Je me demande également s'il n'y a rende plus élégant comme message d'attente. Ca ne veux rien dire !
2/ Dans TabPane, j'affiche des Panel contenant une JTable: JTabbedPane tabbedPane = new JTabbedPane(); tabbedPane.addTab("user.dat",null, userDatPanel(), "Display user.dat"); .... public JPanel userDatPanel() { JPanel userDatPanel = new JPanel( ***new BorderLayout()*** );
Correction entre ***, j'ai pas testé mais ca devrait marcher correctement.
julien wrote:
Bonjour
J'ai 2 problèmes qui me semblent simples, mais malgrés tous mes efforts,
je n'arrive pas à les résoudre.
1/ l'affichage d'une JInteralFrame prend du temps (nombreuses données à
récupérer dans différents fichiers). J'ai donc décider d'afficher un
message (non bloquant) pendant le "chargement". J'ai opté pour
l'affichage d'une simple frame (JOptionPane est bloquant):
JFrame frame = new JFrame("Please wait");
JLabel label = new JLabel("Please wait while loading the file");
frame.getContentPane().add(label, BorderLayout.CENTER);
//frame.pack();
frame.setSize(400, 100);
frame.setVisible(true);
Rien à y faire, le label ne s'affiche pas dans la frame!
Charge ton fichier dans un autre Thread et comme par magie, le thread
d'evenement pourra venir afficher ta fenetre...
Je me demande également s'il n'y a rende plus élégant comme message
d'attente.
Ca ne veux rien dire !
2/ Dans TabPane, j'affiche des Panel contenant une JTable:
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("user.dat",null, userDatPanel(), "Display user.dat");
....
public JPanel userDatPanel() {
JPanel userDatPanel = new JPanel( ***new BorderLayout()*** );
Bonjour J'ai 2 problèmes qui me semblent simples, mais malgrés tous mes efforts, je n'arrive pas à les résoudre.
1/ l'affichage d'une JInteralFrame prend du temps (nombreuses données à récupérer dans différents fichiers). J'ai donc décider d'afficher un message (non bloquant) pendant le "chargement". J'ai opté pour l'affichage d'une simple frame (JOptionPane est bloquant):
JFrame frame = new JFrame("Please wait"); JLabel label = new JLabel("Please wait while loading the file"); frame.getContentPane().add(label, BorderLayout.CENTER); //frame.pack(); frame.setSize(400, 100); frame.setVisible(true);
Rien à y faire, le label ne s'affiche pas dans la frame! Charge ton fichier dans un autre Thread et comme par magie, le thread
d'evenement pourra venir afficher ta fenetre...
Je me demande également s'il n'y a rende plus élégant comme message d'attente. Ca ne veux rien dire !
2/ Dans TabPane, j'affiche des Panel contenant une JTable: JTabbedPane tabbedPane = new JTabbedPane(); tabbedPane.addTab("user.dat",null, userDatPanel(), "Display user.dat"); .... public JPanel userDatPanel() { JPanel userDatPanel = new JPanel( ***new BorderLayout()*** );
Correction entre ***, j'ai pas testé mais ca devrait marcher correctement.
julien
Black Myst wrote: [..]
Rien à y faire, le label ne s'affiche pas dans la frame!
Charge ton fichier dans un autre Thread et comme par magie, le thread d'evenement pourra venir afficher ta fenetre... Je ne comprends pas pourauoi un thread est obligatoire dans ce cas: je
crée la frame en premier, l'affiche en second, et en 3e je fais le logn process. Je ne vois pas en quoi cela empêche le label de s'afficher si la Frame, elle, s'affiche bien.
[..]
Correction entre ***, j'ai pas testé mais ca devrait marcher correctement.
Merci, ça marche parfaitement
Julien
Black Myst wrote:
[..]
Rien à y faire, le label ne s'affiche pas dans la frame!
Charge ton fichier dans un autre Thread et comme par magie, le thread
d'evenement pourra venir afficher ta fenetre...
Je ne comprends pas pourauoi un thread est obligatoire dans ce cas: je
crée la frame en premier, l'affiche en second, et en 3e je fais le logn
process.
Je ne vois pas en quoi cela empêche le label de s'afficher si la Frame,
elle, s'affiche bien.
[..]
Correction entre ***, j'ai pas testé mais ca devrait marcher correctement.
Rien à y faire, le label ne s'affiche pas dans la frame!
Charge ton fichier dans un autre Thread et comme par magie, le thread d'evenement pourra venir afficher ta fenetre... Je ne comprends pas pourauoi un thread est obligatoire dans ce cas: je
crée la frame en premier, l'affiche en second, et en 3e je fais le logn process. Je ne vois pas en quoi cela empêche le label de s'afficher si la Frame, elle, s'affiche bien.
[..]
Correction entre ***, j'ai pas testé mais ca devrait marcher correctement.
Merci, ça marche parfaitement
Julien
Black Myst
julien wrote:
Black Myst wrote: [..]
Rien à y faire, le label ne s'affiche pas dans la frame!
Charge ton fichier dans un autre Thread et comme par magie, le thread d'evenement pourra venir afficher ta fenetre...
Je ne comprends pas pourauoi un thread est obligatoire dans ce cas: je crée la frame en premier, l'affiche en second, et en 3e je fais le logn process. Je ne vois pas en quoi cela empêche le label de s'afficher si la Frame, elle, s'affiche bien.
Parce que la fenetre est dessiné par le systeme, et que le contenu de la fenetre est dessiné par le Thread d'evenement AWT. Si tu utilise le Thread d'evenement AWT pour faire un traitement long, le contenu de toutes tes fenetre Java ne seront plus redessiner.
Pour en savoir plus, lis la documentation de Swing :-)
julien wrote:
Black Myst wrote:
[..]
Rien à y faire, le label ne s'affiche pas dans la frame!
Charge ton fichier dans un autre Thread et comme par magie, le thread
d'evenement pourra venir afficher ta fenetre...
Je ne comprends pas pourauoi un thread est obligatoire dans ce cas: je
crée la frame en premier, l'affiche en second, et en 3e je fais le logn
process.
Je ne vois pas en quoi cela empêche le label de s'afficher si la Frame,
elle, s'affiche bien.
Parce que la fenetre est dessiné par le systeme, et que le contenu de la
fenetre est dessiné par le Thread d'evenement AWT.
Si tu utilise le Thread d'evenement AWT pour faire un traitement long,
le contenu de toutes tes fenetre Java ne seront plus redessiner.
Pour en savoir plus, lis la documentation de Swing :-)
Rien à y faire, le label ne s'affiche pas dans la frame!
Charge ton fichier dans un autre Thread et comme par magie, le thread d'evenement pourra venir afficher ta fenetre...
Je ne comprends pas pourauoi un thread est obligatoire dans ce cas: je crée la frame en premier, l'affiche en second, et en 3e je fais le logn process. Je ne vois pas en quoi cela empêche le label de s'afficher si la Frame, elle, s'affiche bien.
Parce que la fenetre est dessiné par le systeme, et que le contenu de la fenetre est dessiné par le Thread d'evenement AWT. Si tu utilise le Thread d'evenement AWT pour faire un traitement long, le contenu de toutes tes fenetre Java ne seront plus redessiner.
Pour en savoir plus, lis la documentation de Swing :-)