IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Création d'interface graphique pour débutant ...


Sujet :

AWT/Swing Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Création d'interface graphique pour débutant ...
    Bonjour à tous,

    Voila, dans le cadre d'un TP, il faut que je développe un module de gestion de pièces de rechanges avec une interface graphique ... et ce avant le 16 mars prochain ... aie aie aie ...

    Etant donnée que je débute dans Java, j'ai énormément de mal à m'y mettre (je suis plutot mécanicien de formation ... ) et je me suis fais aidé à gauche et droite pour l'instant.

    Donc, mon probleme est l'interface graphique. Pour l'instant le module de gestion de pieces de rechanges existe et il fonctionne tres bien dans la commande CMD.
    En résumé, il faut que je bascule le fonctionnement de ce module dans une fenetre graphique standart ...
    J'ai déjà créer la fenetre du menu principal, mais je n'arrive pas a créer les liens, l'affichage dans la fenetre et les différentes boites de dialogues nécessaires ...

    Donc je recherche quelqu'un qui aurait un peu de temps pour m'aiguiller, et pour me commencer a faire quelques liens et boites de dialogue afin que je puisse voir la méthode.

    Merci beaucoup

    PS : Ecrivez moi un mail, j'y joindrais le travail que j'ai déjà effectué et un petit rapport expliquant davantage le principe de fonctionnement (d'un point de vue utilisateur)

  2. #2
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,

    J'ai pas vraiment envie de faire ton TP, mais je te donne de quoi continuer ton travail.

    Concernant ton message, je ne peux que t'aiguiller vers :
    - la javadoc, tout ce que tu as besoin de savoir sur les classes graphiques.
    - quelques classes qui pourront t'aider : JFrame (tu connais déjà), JPanel, JTextField, JButton, JLabel, ActionListener.

    Un petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    public class MaJFrame extends JFrame implements ActionListener {
     
      private JTextField text;
      private JButton button;
     
      // Constructeur
      public MaJFrame() {
        super("Titre de la JFrame");
        getContentPane().setLayout(new GridLayout(2, 2));
     
        JLabel label = new JLabel("Ceci est un JTextField");
        getContentPane().add(label);
     
        text = new JTextField(20);
        text.addActionListener(this);
        getContentPane().add(text);
     
        JLabel label = new JLabel("Ceci est un JButton");
        getContentPane().add(label);
     
        button = new JButton("Bouton !");
        button.addActionListener(this);
        getContentPane.ad(button);
     
        pack();
      }
     
     
      // Méthode imposée par l'interface ActionListener
      // Elle est appelée par le JButton lorsqu'on le clique
      // ou par le JTextField lorsqu'on appuie sur Entrée.
      public void actionPerformed(ActionEvent event) {
     
        if(e.getSource().equals(text)) {
          System.out.println("Un évènement nous est parvenu de la zone de texte");
          System.out.println("Elle contient : " + text.getText());
        }
        else if(e.getSource().equals(button)) {
          System.out.println("Un évènement nous est parvenu du bouton");
        }
      }
     
      public static void main(String[] args) {
        MaFrame f = new MaFrame();
        f.setLocation(300, 300);
        f.setVisible(true);
      }
    }

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour la réponse,
    La Javadoc est en anglais... donc je comprends quasiment rien à rien ... et le fichier JFrame, j'arrive pas à l'exécuter pour voir ...

    Voici les fichiers que j'ai déjà, si on exécute le fichier console, le module fonctionne, j'ai commencé à créer un fichier menu et à essayer de faire des liens, mais ca marche pas vraiment et je suis bloqué pour la suite...

    Le but n'est évidemment pas que quelqu'un me fasse ce tp, ce que j'aimerais c'est juste un aiguillement, que quelqu'un me fasses les liens pour effectuer par exemple la commande "ajouter" et "afficher", et ensuite je pourrais essayer de faire la suite en suivant cet exemple ...

    Merci beaucoup


    Le fichier du menu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.InputEvent;
    import java.awt.event.KeyEvent;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.KeyStroke;
    import javax.swing.BorderFactory;
    import java.awt.*;
     
    class FenMenu extends JFrame implements ActionListener
    {
    	private int NBR_MAX = 100;
    	private Catalogue catalogue = new Catalogue(NBR_MAX);
     
    	public FenMenu ()
      { setTitle ("GESTION DE PIECES DE RECHANGE") ;
        setSize (600, 600) ;
     
    	   /* creation barre des menus */
     
    	barreMenus = new JMenuBar() ;
        setJMenuBar(barreMenus) ;
     
    	   /* creation menu Fichier et ses options Ouvrir, Sauvegarder et Quitter */
     
    	fichier = new JMenu ("Fichier") ; fichier.setMnemonic ('F') ;
        barreMenus.add(fichier) ;
     
    	ouvrir = new JMenuItem ("Ouvrir") ; ouvrir.setMnemonic ('O') ;
        ouvrir.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_O, InputEvent.CTRL_MASK)) ;
        fichier.add(ouvrir) ;
        ouvrir.addActionListener (this) ;
     
    	sauvegarder = new JMenuItem ("Sauvegarder") ; sauvegarder.setMnemonic ('S') ;
        sauvegarder.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_S, InputEvent.CTRL_MASK)) ;
        fichier.add(sauvegarder) ;
        sauvegarder.addActionListener (this) ;
     
    	quitter = new JMenuItem ("Quitter") ; quitter.setMnemonic ('Q') ;
        quitter.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_Q, InputEvent.CTRL_MASK)) ;
        fichier.add(quitter) ;
        quitter.addActionListener (this) ; 
     
    	   /* creation menu Edition et ses options Afficher, Trier, Ajouter, Modifier et Supprimer   (-->> voir pour un affichage automatique) */
     
    	edition = new JMenu ("Edition") ; edition.setMnemonic ('E');
        barreMenus.add(edition) ;
     
    	afficher = new JMenuItem ("Afficher") ; afficher.setMnemonic ('A') ;
    	afficher.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_A, InputEvent.CTRL_MASK)) ;
        edition.add(afficher) ;
        afficher.addActionListener (this) ;
     
    	trier = new JMenuItem ("Trier") ; trier.setMnemonic ('T') ;
    	trier.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_T, InputEvent.CTRL_MASK)) ;
        edition.add(trier) ;
        trier.addActionListener (this) ;
     
    	ajouter = new JMenuItem ("Ajouter") ; ajouter.setMnemonic ('J') ;
    	ajouter.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_J, InputEvent.CTRL_MASK)) ;
        edition.add(ajouter) ;
        ajouter.addActionListener (this) ;
     
    	modifier = new JMenuItem ("Modifier") ; modifier.setMnemonic ('M') ;
    	modifier.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_M, InputEvent.CTRL_MASK)) ;
        edition.add(modifier) ;
        modifier.addActionListener (this) ;
     
    	supprimer = new JMenuItem ("Supprimer") ; supprimer.setMnemonic ('R') ;
    	supprimer.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_R, InputEvent.CTRL_MASK)) ;
        edition.add(supprimer) ;
        supprimer.addActionListener (this) ;
     
       /* creation menu Aide et ses options consuler rapport d'aide, à propos  */
     
    	aide = new JMenu ("?") ; aide.setMnemonic ('I');
        barreMenus.add(aide) ;
     
    	consulter = new JMenuItem ("Consulter le rapport") ; consulter.setMnemonic ('C');
    	consulter.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_C, InputEvent.CTRL_MASK)) ;
    	aide.add(consulter);
    	consulter.addActionListener (this);
     
    	propos = new JMenuItem ("A propos") ; propos.setMnemonic ('P');
    	propos.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_P, InputEvent.CTRL_MASK)) ;
    	aide.add(propos);
    	propos.addActionListener (this);
     
     
    	/* creation des panels pour affichage */
    	/*JPanel logpanel = new JPanel();
    	JTextArea logtext = new JTextArea();
    	logpanel.add(logtext);
    	add(logpanel);
    	logtext.append("toto");
    	*/
    	mainpanel = new JPanel();
    	logpanel = new JPanel();
    	maintext = new JTextArea();
    	logtext = new JTextArea();
    	mainpanel.add(maintext);
    	logpanel.add(logtext);
    	logpanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
    	mainpanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
    	getContentPane().add(mainpanel,"Center");
       	getContentPane().add(logpanel,"South");
      }
     
     
      public void actionPerformed (ActionEvent e)
      { Object source = e.getSource() ;
      //  System.out.println ("Action avec chaine de commande = "
      //                     + e.getActionCommand() ) ;
        if (source == ouvrir){
        	logtext.append("** Action option Ouvrir\n\r") ;
        //	catalogue.ouvrir("catalogue.txt");
        }
        if (source == sauvegarder){  
        	logtext.append("** Action option Sauvegarder\n\r");
        //	catalogue.sauvergarder("catalogue.txt");
    	}		
        if (source == quitter){
        	logtext.append("** Action option Quitter\n\r") ;
        	menu.quit();
        }
    	if (source == afficher){	
    		logtext.append("** Action option Afficher\n\r") ;
    	//	maintext.append(catalogue.toString());
    	}
        if (source == trier){
        	logtext.append("** Action option Trier\n\r") ;
    	//	catalogue.trier();
    	}
    	if (source == ajouter){
    		logtext.append("** Action option Ajouter\n\r") ;
    	//	catalogue.ajouter("tot","","",12,1980);
    	}
    	if (source == modifier){
    		logtext.append("** Action option Modifier\n\r") ;
    	//	catalogue.modifier(10);
    	}
    	if (source == supprimer){
    		logtext.append("** Action option Supprimer\n\r") ;
    	//	catalogue.supprimer(10);
    	}
    	if (source == consulter)	logtext.append("** Action option Consulter le rapport\n\r") ;
    	if (source == propos)		logtext.append("** Action option A propos\n\r") ;
     
    	logpanel.repaint();
    	mainpanel.repaint();
     
        /*Manque l'action clic dans le croix rouge pour fermer l'appli*/
      }
     
      private JTextArea maintext, logtext;
      private JPanel mainpanel, logpanel;
      private JMenuBar barreMenus ;
      private JMenu fichier, edition, aide;
      private JMenuItem ouvrir, sauvegarder, quitter, afficher, trier, ajouter, modifier, supprimer, consulter, propos ;
    }
     
    public class menu
    { private static boolean exit = false;
     
    	public static void quit(){
        exit = true;
      }
     
    	public static void main (String args[])
    	  { FenMenu fen = new FenMenu() ;
    	    fen.setVisible(true) ;
    	    while(exit!=true){
    	    }
    	    fen.setVisible(false);
    	    System.exit(0);
    	  }
     
    }
    Le fichier Console, celui qu'on lance si on veut faire sans le menu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    public class Console{
     
    	public static void main (String[] args){
    		int max_elements = 100;
    		Catalogue catalogue = new Catalogue(max_elements);
    		int menu=7; 
    		System.out.println();
    		System.out.println();
    		System.out.println("            ___________________________________________             ");
    		System.out.println("           |                                           |             ");
    		System.out.println("           | MODULE DE GESTION DES PIECES DE RECHANGES |   ");
    		System.out.println("           |___________________________________________|            ");
    		while(menu != 0){
    			System.out.println();
    			System.out.println();
    			System.out.println("     xxxxxxxx            MENU PRINCIPAL            xxxxxxxx");
    			System.out.println();
    			System.out.println();
    			System.out.println("	Ajouter une piece de rechange     --> 1");
    			System.out.println("	Trier les pieces de rechanges     --> 2");
    			System.out.println("	Afficher les pieces de rechanges  --> 3");
    			System.out.println("	Supprimer une piece de rechange   --> 4");
    			System.out.println("	Modifier une piece de rechange    --> 5");
    			System.out.println("	Sauvegarder les donnees           --> 6");
    			System.out.println("	Importer les donnees              --> 7");
    			System.out.println("	Quitter le module                 --> 0");
    			System.out.println();
    			menu=Lire_entier.readInt("  --Saisir votre choix--  =  ");
    			switch (menu){
    				case 0 : 
    					System.out.println("    ____________________________________________________  ");
    					System.out.println("   |                                                    | ");
    					System.out.println("   | ARRET DU MODULE DE GESTION DES PIECES DE RECHANGES | ");
    					System.out.println("   |                                                    | ");
    					System.out.println("   |                     AU-REVOIR                      | ");
    					System.out.println("   |____________________________________________________| ");
    					System.out.println("");
    					System.out.println("");
    				break;
    				case 1 :
    					System.out.println();
    					String reference = Lire_chaine.readString("--Saisir la reference--      =  ");
    					String designation = Lire_chaine.readString("--Saisir la designation--   =  ");
    					String fabricant = Lire_chaine.readString("--Saisir le fabricant--   =   ");
    					int matiere = Lire_entier.readInt("--Saisir le code matiere--  =  ");
    					int annee = Lire_entier.readInt("--Saisir l'annee de fabrication--   =  ");
    					catalogue.ajouter(reference,designation,fabricant,matiere,annee);
    					break;
    				case 2 :
    					catalogue.trier();
    					break;
    				case 3 : 
    					catalogue.afficher();
    					break;
    				case 4 :
    					int num = Lire_entier.readInt("--Saisir le numero de la piece de rechange a supprimer-- = ");
    					if (catalogue.est_compris_catalogue(num)){
    					catalogue.supprimer(num);						
    					}
    					else{
    					System.out.println();
    					System.out.println("XXX  --ERREUR DE SAISIE DU NUMERO DE LA PIECE DE RECHANGES--  XXX");
    					System.out.println("XXX          --PIECE DE RECHANGE NON SUPPRIME--          XXX");
    					System.out.println();
    					}
    					break;
    				case 5 :
    					int num_modifier = Lire_entier.readInt("--Saisir le numero de la piece de rechange a modifier-- = ");
    					if (catalogue.est_compris_catalogue(num_modifier)){  
    					catalogue.modifier(num_modifier);                                         
    					}
    					else{
    					System.out.println();
    					System.out.println("XXX  --ERREUR DE SAISIE DU NUMERO DE LA PIECE DE RECHANGE--  XXX");
    					System.out.println("XXX            --PIECE DE RECHANGE NON MODIFIEE--            XXX");
    					System.out.println();
    					}
    					break;
    				case 6 :
    					String nom_fichier_sauv = Lire_chaine.readString("--Saisir un nom de fichier (avec extension)-- = ");
    					catalogue.sauvergarder(nom_fichier_sauv);
    					break;
    				case 7 :
    					String nom_fichier_ouv = Lire_chaine.readString("--Saisir un nom de fichier (avec extension)-- = ");
    					catalogue.ouvrir(nom_fichier_ouv);
    					break;
    				default : 
    					System.out.println("XXX  --ERREUR DE SAISIE DU NUMERO DE LA PIECE DE RECHANGE--  XXX");
    					break;
    			}
    		}
    	}
    }
    Le fichier catalogue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    import java.io.*;
    import java.util.Calendar;
     
    public class Catalogue {
     
    	private Pieces [] bibliotheque_rechanges;
    	private int num_rechanges;
     
    	public Catalogue(int nbre){
    		bibliotheque_rechanges = new Pieces[nbre];
    		num_rechanges = 0;
    	}
    	public void trier (){
    		for (int p=1;p<=num_rechanges-1;p++){
    			for (int i=p+1;i<=num_rechanges;i++){
    				int anneeP = bibliotheque_rechanges[p].retourner_annee();
    				int anneeI = bibliotheque_rechanges[i].retourner_annee();
    					if(anneeP < anneeI){
    						Pieces rechanges_temp = bibliotheque_rechanges[p];
    						bibliotheque_rechanges[p]=bibliotheque_rechanges[i];
    						bibliotheque_rechanges[i]=rechanges_temp;
    					}
    					if(anneeP > anneeI){
    					}
    			}
    		}
    		System.out.println();
    		System.out.println("________Tri correctement effectue________");
    	}
    	public void afficher(){
    		System.out.println();
    		System.out.println("__________Affichage des pieces de rechanges__________");
    		System.out.println();
    		for(int i=1; i<=num_rechanges;i++){
    			System.out.println();
    			System.out.println();
    			System.out.print("--->>>  Numero de la piece de rechanges =  ");
    			System.out.print((int)i);
    			System.out.println();
    			bibliotheque_rechanges[i].afficher();
    		}
    	}
    	public void ajouter (String reference,String designation,String fabricant,int matiere,int annee){
    	    Calendar date = Calendar.getInstance();
    	    date.clear();
    		date.set(Calendar.YEAR,annee);
    		Pieces new_rechanges = new Pieces(reference,designation,fabricant,matiere,date);
    		num_rechanges++;
    		bibliotheque_rechanges[num_rechanges] = new_rechanges;
    		System.out.println("");
    		System.out.println();
    		System.out.println("________Piece de rechange correctement ajoutee________");
    		System.out.println();	
    	}
     
    	public boolean est_compris_catalogue(int num){
    		if ((num>0) & (num <= num_rechanges))
    		return true;
    		else return false;
    	}
    	public void supprimer (int num){
    		System.out.println();
    		System.out.println("_________Suppression d'une piece de rechanges_________");
    		System.out.println();
    		for (int i=num; i<=num_rechanges-1;i++ ){
    			bibliotheque_rechanges[i] = bibliotheque_rechanges[i+1];	
    		}
    		num_rechanges--;
    		System.out.println("_______Piece correctement supprimee_______");
    	}
    	public void modifier (int num_rechanges){
    		System.out.println();
    		System.out.println("________Modification d'une piece de rechange________");
    		System.out.println();
    		String reference = Lire_chaine.readString("--Saisir la nouvelle reference-- = ");
    		String designation = Lire_chaine.readString("--Saisir la nouvelle designation-- = ");
    		String fabricant = Lire_chaine.readString("--Saisir le nouveau fabricant-- = ");
    		int matiere = Lire_entier.readInt("--Saisir le nouveau code matiere--     = ");
    		int annee = Lire_entier.readInt("--Saisir la nouvelle annee de fabrication-- = ");
    		System.out.println();
    		Calendar date = Calendar.getInstance();
    	    date.clear();
    		date.set(Calendar.YEAR,annee);
    		bibliotheque_rechanges[num_rechanges].modifier_piece(reference,designation,fabricant,matiere,date);
    		System.out.println("_______Piece de rechange correctement modifiee_______");
    	} 
    	public void sauvergarder(String nom_fichier){
    		try{
    			FileWriter ecriture = new FileWriter(nom_fichier,false);
    			for(int i=1; i<=num_rechanges;i++){
    				ecriture.write((String)bibliotheque_rechanges[i].retourner_reference());
    				ecriture.write(";");
    				ecriture.write((String)bibliotheque_rechanges[i].retourner_designation());
    				ecriture.write(";");
    				ecriture.write((String)bibliotheque_rechanges[i].retourner_fabricant());
    				ecriture.write(";");
    				ecriture.write((String)Integer.toString(bibliotheque_rechanges[i].retourner_matiere()));
    				ecriture.write(";");
    				ecriture.write((String)Integer.toString(bibliotheque_rechanges[i].retourner_annee()));
    				ecriture.write(";\n");
    			}
    			ecriture.close();
    			System.out.println();
    			System.out.print("___Sauvegarde correctement effectuee dans le fichier :  ");
    			System.out.print((String) nom_fichier);
    			System.out.print("___\n");
    			System.out.println();
    		}
    		catch(IOException e){System.err.println(e);}
    	}
    	public void ouvrir(String nom_fichier){
    		try{
    			BufferedReader lecture = new BufferedReader(new FileReader((String)nom_fichier));
    			String ligne="",tmp="";
    			String reference="";
    			String designation="";
    			String fabricant="";
    			int matiere=0,annee=0;
    			int debut_mot=0, fin_mot = 0;
    			while(  (ligne = lecture.readLine()) != null){
    				System.out.println(ligne);
     
    				fin_mot = ligne.indexOf(';',debut_mot);				// jusqu'au 1er c'est la reference
    				reference = ligne.substring(debut_mot,fin_mot);
    				// System.out.print((int)debut_mot);System.out.print((String)reference);System.out.println((int)fin_mot);
    				debut_mot = fin_mot+1;
     
    				fin_mot = ligne.indexOf(';',debut_mot);				// du 1er ; au 2eme ; c'est la designation
    				designation = ligne.substring(debut_mot,fin_mot);
    				// System.out.print((int)debut_mot);System.out.print((String)designation);System.out.println((int)fin_mot);
    				debut_mot = fin_mot+1;
     
    				fin_mot = ligne.indexOf(';',debut_mot);				// du 2eme ; au 3eme ; c'est le fabricant
    				fabricant = ligne.substring(debut_mot,fin_mot);
    				// System.out.print((int)debut_mot);System.out.print((String)fabricant);System.out.println((int)fin_mot);
    				debut_mot = fin_mot+1;
     
    				fin_mot = ligne.indexOf(';',debut_mot);				// du 3eme ; au 4eme ; c'est le code matiere
    				tmp = ligne.substring(debut_mot,fin_mot);
    				// System.out.print((int)debut_mot);System.out.print((String)tmp);System.out.println((int)fin_mot);
    				matiere = Integer.parseInt(tmp);
    				//System.out.println((int) matiere);
    				debut_mot = fin_mot+1;
     
    				fin_mot = ligne.indexOf(';',debut_mot);				// du 4eme ; au 5eme ; c'est l'annee
    				tmp = ligne.substring(debut_mot,fin_mot);
    				// System.out.print((int)debut_mot);System.out.print((String)tmp);System.out.println((int)fin_mot);
    				annee = Integer.parseInt(tmp);
    				// System.out.println((int) annee);
    				debut_mot = fin_mot+1;	
    				ajouter ( reference, designation, fabricant, matiere, annee);
    				debut_mot=0;
    				fin_mot = 0;
    			}
    			lecture.close();
    			System.out.println();
    			System.out.print("___Importation correctement effectuee depuis le fichier  : ");
    			System.out.print((String) nom_fichier);
    			System.out.print("___\n");
    			System.out.println();
    		}
    		catch(IOException e){
    			System.err.println();
    			System.err.println("XXX  --ERREUR DE SAISIE OU FICHIER INEXISTANT--  XXX");}
    	}
     
    	public String toString(){
    		String tmp=""; 
    		for(int i=1; i<=num_rechanges;i++){
    			tmp = "--->>>  Numero de la piece de rechanges =  \n\r";
    			tmp.concat(Integer.toString(i));
    			tmp.concat(bibliotheque_rechanges[i].toString());
    		}
    		return tmp;
    	}
    }
    Le fichier pieces

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    import java.util.*;
     
    public class Pieces 
    {
    	private String 		reference;
    	private String		designation;
    	private String  	fabricant;
    	private int 	   	code_matiere;
    	private String 		num_serie;
    	private Calendar    date_fabrication;
     
    	public Pieces( String _reference, String _designation, String _fabricant,int _code_matiere, Calendar _date_fabrication) {
    		reference = _reference;
    		designation = _designation ;
    		fabricant = _fabricant;
    		code_matiere = _code_matiere;
    		date_fabrication = _date_fabrication;
    		calculer_serie();
    	}
    	private void calculer_serie(){
    		String matiere="";
    	    if (code_matiere<10) {
    			matiere =  "00".concat(String.valueOf(code_matiere));
    		}
    	    else{
    			if ((code_matiere>10) & (code_matiere<100)){
    				matiere =  "0".concat(String.valueOf(code_matiere));
    			}
    			else{ 
    				if ((code_matiere>100) & (code_matiere<1000)){
    					matiere = String.valueOf(code_matiere);
    				}
    				else{
    					code_matiere = 999;
    					matiere =  (String.valueOf(code_matiere));
    					}
    			}
    	    }
    		num_serie = (matiere.concat("_")).concat(String.valueOf(date_fabrication.get(Calendar.YEAR)));
    	}
    	public void afficher() {
    		System.out.print("				Reference		-> ");
    		System.out.print((String) reference);
    		System.out.println();
    		System.out.print("				Designation		-> ");
    		System.out.print((String) designation);
    		System.out.println();
    		System.out.print("				Fabricant		-> ");
    		System.out.print((String) fabricant);
    		System.out.println();
    		System.out.print("				Code matiere		-> ");
    		System.out.print((int) code_matiere);
    		System.out.println();
    		System.out.print("				Annee fabrication	-> ");
    		System.out.print((int)(date_fabrication.get(Calendar.YEAR)));
    		System.out.println();
    		System.out.print("				Numero de serie		-> ");
    		System.out.print((String) num_serie);
    		System.out.println();
    		System.out.print("");
    	}
    	public void modifier_piece(String _reference, String _designation, String _fabricant,int _code_matiere, Calendar _date_fabrication){
    		reference = _reference;
    		designation = _designation ;
    		fabricant = _fabricant;
    		code_matiere = _code_matiere;
    		date_fabrication = _date_fabrication;
    		calculer_serie();
    	}
    	public String retourner_reference(){
    		return reference;
    	}
    	public String retourner_serie(){
    		return num_serie;
    	}
    	public String retourner_designation(){
    		return designation;
    	}
    	public String retourner_fabricant(){
    		return fabricant;
    	}
    	public int retourner_matiere(){
    		return code_matiere;
    	}
    	public int retourner_annee(){
    		return date_fabrication.get(Calendar.YEAR);
    	}
    	public String toString(){
    		String tmp = "				Reference		-> ";
    		tmp.concat((String) reference);
    		tmp.concat("\n				Designation		-> ");
    		tmp.concat((String) designation);
    		tmp.concat("\n				Fabricant		-> ");
    		tmp.concat((String) fabricant);
    		tmp.concat("\n				Code matiere		-> ");
    		tmp.concat(Integer.toString(code_matiere));
    		tmp.concat("\n				Annee fabrication	-> ");
    		tmp.concat(Integer.toString(date_fabrication.get(Calendar.YEAR)));
    		tmp.concat("\n				Numero de serie		-> ");
    		tmp.concat((String) num_serie);
     
     
    		return tmp;
    	}
    }
    Le fichier Lire_entier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    /**
     *  Saisie au clavier d'un nombre entier
     */
    import java.io.*;
     
    class Lire_entier {
     
     
    	// Entier
    	public static int readInt(String text) throws NumberFormatException {
     
    		int i=0;
     
    		try {
    			BufferedReader in = new BufferedReader(
    		                       new InputStreamReader(System.in));
     
    			System.out.print(text + " ");  
     
    			i = Integer.parseInt(in.readLine());             
     
    		}
    		catch (IOException e) { System.err.println(e); }
     
    		return i;
    	}
     
     
    }
    Le fichier Lire_chaine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    /**
     *  Saisie au clavier d'une chaine de caracteres
     */
    import java.io.*;
     
    class Lire_chaine {
     
     
    	// chaine
    	public static String readString(String text) {
     
    		String x=" ";
     
    		try {
    			BufferedReader in = new BufferedReader(
    		                       new InputStreamReader(System.in));
     
    			System.out.print(text + " ");  
     
    			x = (in.readLine());             
     
    		}
    		catch (IOException e) { System.err.println(e); }
     
    		return x;
    	}
     
     
    }
    Le fichier Lire_réel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    /**
     *  Saisie au clavier d'un nombre réel
     */
    import java.io.*;
     
    class Lire_reel {
     
     
    	// Réel
    	public static float readFloat(String text) throws NumberFormatException {
     
    		float x=0;
     
    		try {
    			BufferedReader in = new BufferedReader(
    		                       new InputStreamReader(System.in));
     
    			System.out.print(text + " ");  
     
    			x = Float.parseFloat(in.readLine());             
     
    		}
    		catch (IOException e) { System.err.println(e); }
     
    		return x;
    	}
     
     
    }

  4. #4
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Aie si t'aimes pas l'anglais, t'es dans la m...

    Bon, je viens de regarder tes classes, et il y a beaucoup de choses à dire, mais je vais aller à l'essentiel. L'idée est de toujours séparer les données et leur traitement de l'interface (graphique ou console).

    Vu comme tu es parti, quand tu trieras le catalogue en cliquant sur un bouton, la console t'affichera un message dont tu te fiches.

    Pour sortir du programme quand on ferme la fenetre, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class FenMenu ... {
     
      .... // le contenu de ta classe
     
      public static void main(String[] args) {
        FenMenu fen = new FenMenu() ;
        fen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fen.setVisible(true) ;
      }
    }

    Pour afficher les pieces
    Je te conseille d'essayer d'utiliser une JList. Pour ca il ne faut pas faire grand chose :
    - dans la classe Catalogue, ajouter une méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Pieces[] getPieces() {
      return bibliotheque_rechanges;
    }
    Et dans la classe FenMenu, au lieu du texte central :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       logpanel = new JPanel();
       logtext = new JTextArea();
       logpanel.add(logtext);
       logpanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
       getContentPane().add(logpanel,BorderLayout.SOUTH);
     
       list = new JList(catalogue.getPieces());
       list.setBorder(BorderFactory.createLineBorder(Color.BLACK));
       getContentPane().add(list,BorderLayout.CENTER);
    Et il faut remplacer mainpanel.repaint() par list.setListData(catalogue.getPieces());
    Il faudra peut etre redéfinir la méthode toString() des pièces, ou et c'est le top, définir un ListCellRenderer (je te conseille fortement d'essayer ca).


    Pour ajouter une pièce, tu peux utiliser une deuxième JFrame qui ressemble à celle que j'ai écrite plus haut, non ?[/code]

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/03/2014, 08h20
  2. Réponses: 11
    Dernier message: 30/11/2010, 01h17
  3. Norme pour la création des interfaces graphiques
    Par beet2che dans le forum VB.NET
    Réponses: 1
    Dernier message: 28/08/2008, 20h11
  4. [Kylix] Interface graphique pour lognes de commande linux
    Par lecharcutierdelinux dans le forum EDI
    Réponses: 6
    Dernier message: 29/08/2003, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo