Programmation JAVA
Fermé
TSniper
Messages postés
778
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
15 novembre 2016
-
9 avril 2008 à 10:09
TSniper Messages postés 778 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 15 novembre 2016 - 9 avril 2008 à 16:26
TSniper Messages postés 778 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 15 novembre 2016 - 9 avril 2008 à 16:26
A voir également:
- Programmation JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Application de programmation - Guide
4 réponses
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
9 avril 2008 à 14:01
9 avril 2008 à 14:01
Re,
Plutot que d'utiliser un tableau je te conseille de manipuler une ArrayList. Pourquoi ? Simplement car ce que tu veux faire c'est pouvoir ajouter un nombre indéfini d'Ouvrier avec ton interface. Or pour manipuler un tableau tu es obligé de fixer sa longueur à l'avance pour y ajouter des éléments (ou alors la recalculer à chaque fois).
Comme tout bon programmeur le sait, inutile de réinventer la roue, donc j'ai utiliser une ArrayList d'objet Ouvrier.
Voilà la classe Ouvrier, qui reprends grossomodo ce que tu as déjà fait normalement :
Note: les setters / getters ne sont pas obligatoire, c'est juste une méthode de programmation que je trouve plus claire.
Une classe principale :
Dans laquelle j'ai fais une petite interface (note bien que j'ai simplement programmé et pas testé, donc l'interface n'est peut être pas bonne), juste pour avoir une idée de comment implémenter le code pour faire ce que tu veux faire.
Un bouton, qui lorsque l'on clique dessus va reprendre les valeurs de tes champs 'nom', 'prenom' et 'salaire', faire quelques contrôles dessus et s'ils sont valide, ajouter le nouvel Ouvrier.
Si j'ai bien compris c'est quelque chose comme ça que tu souhaite faire ?
Plutot que d'utiliser un tableau je te conseille de manipuler une ArrayList. Pourquoi ? Simplement car ce que tu veux faire c'est pouvoir ajouter un nombre indéfini d'Ouvrier avec ton interface. Or pour manipuler un tableau tu es obligé de fixer sa longueur à l'avance pour y ajouter des éléments (ou alors la recalculer à chaque fois).
Comme tout bon programmeur le sait, inutile de réinventer la roue, donc j'ai utiliser une ArrayList d'objet Ouvrier.
Voilà la classe Ouvrier, qui reprends grossomodo ce que tu as déjà fait normalement :
public class Ouvrier { private String name = null; private String surname = null; private int money = 0; /** * Ouvrier * Default class constructor * @param theName * @param theSurname */ public Ouvrier ( String theName, String theSurname ){ setName(theName); setSurname(theSurname); setMoney(0); } /** * Ouvrier * Main class constructor * @param theName * @param theSurname * @param theMoney */ public Ouvrier ( String theName, String theSurname, int theMoney ){ setName(theName); setSurname(theSurname); setMoney(theMoney); } /***********************/ /** SETTERS & GETTERS **/ /***********************/ public void setName ( String theName ){ this.name = theName; } public String getName ( ){ return this.name; } public void setSurname ( String theName ){ this.surname = theName; } public String getSurname ( ){ return this.surname; } public void setMoney ( int theNum ){ this.money = theNum; } public int getMoney ( ){ return this.money; } }
Note: les setters / getters ne sont pas obligatoire, c'est juste une méthode de programmation que je trouve plus claire.
Une classe principale :
public class CreateOuvrier extends JFrame { private ArrayList ouvriers = null; private JTextField name = null; private JTextField surname = null; private JTextField money = null; /** * CreateOuvrier * Default class constructor */ public CreateOuvrier ( ){ super(); init(); this.setSize(800,600); this.setVisible(true); } private void init(){ // --- Set content pane JPanel myMainPanel = new JPanel(); myMainPanel.setLayout(new GridLayout(4,2)); // --- 4 lignes et 2 colones this.setContentPane( myMainPanel ); name = new JTextField(); surname = new JTextField(); money = new JTextField(); JLabel name_label = new JLabel("Nom : "); JLabel surname_label = new JLabel("Prenom : "); JLabel money_label = new JLabel("Salaire : "); // --- Ajout d'un bouton pour ajouter l'ouvrier JButton submit = new JButton("Ajouter"); // --- Ainsi qu'une action lorsque l'on clique dessus pour valider l'ajout submit.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { // APPEL DE LA METHODE DE VALIDATION ET D'AJOUT D'UN OUVRIER addOuvrier(); } }); // --- Ajout des éléments graphique dans le panel principale myMainPanel.add(name_label); myMainPanel.add(name); myMainPanel.add(surname_label); myMainPanel.add(surname); myMainPanel.add(money_label); myMainPanel.add(money_label); myMainPanel.add(submit); } /** * addOuvrier * Permet d'ajouter un ouvrier selon les champs remplis */ protected void addOuvrier ( ){ // --- Retrieve data from fields String myName = name.getText(); String mySurname = surname.getText(); String myMoney = money.getText(); // --- Check if all fields are valid // 1°) NAME if ( myName.trim().equalsIgnoreCase("") ){ JOptionPane.showMessageDialog(null,"Champ requis : nom"); return; } // 2°) SURNAME if ( mySurname.trim().equalsIgnoreCase("") ){ JOptionPane.showMessageDialog(null,"Champ requis : prénom"); return; } // 3°) MONEY if ( myMoney.trim().equalsIgnoreCase("") ){ // --- Set default value '0' if no filled myMoney = "0"; } // 4°) MONEY has integer value ? int myIntMoney = 0; try{ myIntMoney = Integer.parseInt(myMoney); }catch (NumberFormatException e){ JOptionPane.showMessageDialog(null,"Le salaire doit avoir une valeur numérique"); return; } // 5°) Check if ouvrier to add is already present in the list if ( findOuvrier(myName,mySurname) != null ){ JOptionPane.showMessageDialog(null,"Cet ouvrier est déjà présent dans la liste. Ajout impossible."); return; } // --- All the data are ok, so add a new Ouvrier to the list Ouvrier myNewOuvrier = new Ouvrier(myName,mySurname,myIntMoney); getOuvriers().add(myNewOuvrier); // --- Reset fields values name.setText(""); surname.setText(""); money.setText(""); // --- And alert the user : new Ouvrier added to the list JOptionPane.showMessageDialog(null,"Nouvel ouvrier ajouté avec succès !"); } private Ouvrier findOuvrier ( String theName, String theSurname ){ boolean found = false; int i = 0; Ouvrier myCurrOuvrier = null; while ( !found && i < getOuvriers().size() ){ myCurrOuvrier = (Ouvrier)getOuvriers().get(i); if ( myCurrOuvrier.getName().trim().equalsIgnoreCase(theName) && myCurrOuvrier.getSurname().trim().equalsIgnoreCase(theSurname) ) found = true; else i++; } if ( found ) return myCurrOuvrier; else return null; } /***********************/ /** GETTERS & SETTERS **/ /***********************/ public void setOuvriers ( ArrayList theList ){ this.ouvriers = theList; } public ArrayList getOuvriers ( ){ return this.ouvriers; } }
Dans laquelle j'ai fais une petite interface (note bien que j'ai simplement programmé et pas testé, donc l'interface n'est peut être pas bonne), juste pour avoir une idée de comment implémenter le code pour faire ce que tu veux faire.
Un bouton, qui lorsque l'on clique dessus va reprendre les valeurs de tes champs 'nom', 'prenom' et 'salaire', faire quelques contrôles dessus et s'ils sont valide, ajouter le nouvel Ouvrier.
Si j'ai bien compris c'est quelque chose comme ça que tu souhaite faire ?
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
9 avril 2008 à 10:47
9 avril 2008 à 10:47
Bonjour,
Je crois que tu as tout simplement oublié de dire ce que tu voulais réellement ^^
Effectivement tu travaille sur une interface pour remplir ton tableau d'Ouvrier. La classe Ouvrier contient principalement trois propriété, à savoir nom, prenom et salaire, respectivement de type String, String et int.
Mais que veux-tu exactement ? Sur quel difficulté technique bloques-tu ?
As-tu du code déjà fait concernant ton interface graphique que tu pourrais poster ici afin qu'on voit où tu en es ?
Je crois que tu as tout simplement oublié de dire ce que tu voulais réellement ^^
Effectivement tu travaille sur une interface pour remplir ton tableau d'Ouvrier. La classe Ouvrier contient principalement trois propriété, à savoir nom, prenom et salaire, respectivement de type String, String et int.
Mais que veux-tu exactement ? Sur quel difficulté technique bloques-tu ?
As-tu du code déjà fait concernant ton interface graphique que tu pourrais poster ici afin qu'on voit où tu en es ?
TSniper
Messages postés
778
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
15 novembre 2016
157
9 avril 2008 à 12:37
9 avril 2008 à 12:37
çe que je veut c'est la liaison entre les zone de texte de l'nterface graphique et les cases de mon tableau T[]
pour que quand l'utilisateur entre le nom dans la case "nom" je veut que cette valeur soit affecté au tableau ouvrier T[0].nom.
merci pour votre aide.
pour que quand l'utilisateur entre le nom dans la case "nom" je veut que cette valeur soit affecté au tableau ouvrier T[0].nom.
merci pour votre aide.
TSniper
Messages postés
778
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
15 novembre 2016
157
9 avril 2008 à 16:26
9 avril 2008 à 16:26
Oui c comme ça merci mon amie merçi innnnnnnnnfiniment je vait l'essayer.