[JAVA] Controleur
V3n1
Messages postés
270
Date d'inscription
Statut
Membre
Dernière intervention
-
V3n1 Messages postés 270 Date d'inscription Statut Membre Dernière intervention -
V3n1 Messages postés 270 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
En faite j'essaye en quelques sortes de suivre le modèle MVC pour un projet.
Sauf que j'arrive pas trop gérer l'ajout d'un panel par un ActionListener.
Ci-dessous la description de deux classes :
-----------------------------------------
--------------------------------------------
Pour plus de précision, la gestion du bouton quitter marche parfaitement alors que le bouton Import étudiants ne fonctionne pas.. J'arrive à afficher les noms de mon fichier Excel dans la console, mais je n'arrive pas à ajouter le panel dans la feneêtre principale.
Pourtant, je créer le JTable, ensuite le panel puis j'ai crée une fonction qui ajoute le panel à la fenêtre et je crains que c'est celle-ci qui ne fonctionne pas !
Vous avez des idées ?
Merci d'avance!
--
"Se prépare un déluge mais ne nous sommes pas nées de la dernière pluie"
En faite j'essaye en quelques sortes de suivre le modèle MVC pour un projet.
Sauf que j'arrive pas trop gérer l'ajout d'un panel par un ActionListener.
Ci-dessous la description de deux classes :
public class JeuControleur implements ActionListener {
/**
* La vue affichant la fenêtre principale
*/
private FenetrePrincipale vue;
public JeuControleur(){
}
public void setVue(FenetrePrincipale vue) {
this.vue = vue;
}
public void actionPerformed(ActionEvent e) {
String s = e.getActionCommand();
if(s.equals("Quitter")){
this.vue.fermer();
System.exit(1);
} else if(s.equals("Import des étudiants")) {
this.vue.removeMonPanel();
JFileChooser chooser = new JFileChooser(); // Création d'un filechosser
chooser.setApproveButtonText("Choix du fichier..."); // Nom du bouton
int returnVal = chooser.showOpenDialog(null); // Affiche la boite de dialogue
JTable maTable = null;
if (returnVal == JFileChooser.APPROVE_OPTION){
File monFichier = chooser.getSelectedFile();
UtilitaireXLS monTableau = new UtilitaireXLS();
try {
maTable = monTableau.CreerJTableAvecExcel(monFichier);
} catch (FileNotFoundException ex) {
Logger.getLogger(JeuControleur.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(JeuControleur.class.getName()).log(Level.SEVERE, null, ex);
}
this.vue.ajoutPanel(this.vue.creerPanelJTable(maTable));
this.vue.actualiserFenetre();
}
}
}
}
-----------------------------------------
public class FenetrePrincipale extends JFrame{
/**
* Controleur qui gère les demandes de l'utilisateur
*/
private JeuControleur controleur;
/**
* Panel qui change d'après les demandes de l'utilisateur
*/
private JPanel monPanel = new JPanel(new GridBagLayout());
public FenetrePrincipale(JeuControleur controleur){
super("Gestion des poursuites d'études");
this.controleur = controleur;
this.construitMenu();
this.construitFenetre();
this.setSize(1300, 700);
this.setVisible(true);
// Arrête l'application à la fermeture de la fenêtre
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public JPanel getMonPanel() {
return monPanel;
}
private void construitFenetre(){
this.setLayout(new BorderLayout());
this.creePanelHaut();
JLabel grosTitre = new JLabel("Gestion poursuites études");
// Modif de la police du label
grosTitre.setFont(new Font(Font.SANS_SERIF, Font.ITALIC,32));
// Ajout des labels au panel
monPanel.add(grosTitre);
this.ajoutPanel(monPanel);
}
private void creePanelHaut(){
JPanel p = new JPanel(new FlowLayout());
JLabel titre = new JLabel("IUT de Metz - Département informatique");
p.add(titre);
this.add(p, BorderLayout.WEST);
}
public void ajoutPanel(JPanel monPanel){
this.add(monPanel, FlowLayout.CENTER);
}
public JPanel creerPanelJTable(JTable maTable){
JPanel p = new JPanel(new GridBagLayout());
maTable.revalidate();
maTable.setFont(new Font(Font.SERIF,Font.PLAIN,10));
JScrollPane scrollTab = new JScrollPane(maTable);
scrollTab.setViewportView(maTable);
p.add(scrollTab);
return monPanel;
}
private void construitMenu(){
/**
* Creation de la barre de menu
*/
JMenuBar barre = new JMenuBar();
this.setJMenuBar(barre);
/**
* Creation des menu, attaché à la barre
*/
JMenu mFichier = new JMenu("Fichier");
JMenu mEtudiants = new JMenu("Etudiants");
JMenu mPoursuites = new JMenu("Poursuites");
JMenu mAide = new JMenu("Aide");
barre.add(mFichier);
barre.add(mEtudiants);
barre.add(mPoursuites);
barre.add(mAide);
/**
* Creation d'items
*/
JMenuItem iQuit = new JMenuItem("Quitter");
//iQuit.addActionListener(this);
JMenuItem iImport = new JMenuItem("Import des étudiants", KeyEvent.VK_I);
//iImport.addActionListener(this);
/**
* Ajout des items dans les différents menus
*/
mFichier.add(iQuit);
mEtudiants.add(iImport);
/**
* Ajout du controleur
*/
iQuit.addActionListener(this.controleur);
iImport.addActionListener(this.controleur);
}
public void removeMonPanel(){
monPanel.remove(this);
}
public void actualiserFenetre(){
this.repaint();
}
public void fermer(){
this.setVisible(false);
}
}
--------------------------------------------
public static void main(String[] args) {
// TODO code application logic here
JeuControleur jeu = new JeuControleur();
FenetrePrincipale vue = new FenetrePrincipale(jeu);
jeu.setVue(vue);
}
Pour plus de précision, la gestion du bouton quitter marche parfaitement alors que le bouton Import étudiants ne fonctionne pas.. J'arrive à afficher les noms de mon fichier Excel dans la console, mais je n'arrive pas à ajouter le panel dans la feneêtre principale.
Pourtant, je créer le JTable, ensuite le panel puis j'ai crée une fonction qui ajoute le panel à la fenêtre et je crains que c'est celle-ci qui ne fonctionne pas !
Vous avez des idées ?
Merci d'avance!
--
"Se prépare un déluge mais ne nous sommes pas nées de la dernière pluie"
Configuration: Windows Vista Internet Explorer 7.0
A voir également:
- [JAVA] Controleur
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Jeux java itel touche ✓ - Forum Logiciels
- Jeux java itel 5360 - Forum Mobile