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

 Java Discussion :

Affichage de type void?


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 20
    Par défaut Affichage de type void?
    Bonjour, je suis étudiant débutant en java, je vous explique mon petit problème :

    J'ai commencé par créer un projet Banque, avec une classe CompteCourant et une classe OperationBancaire qui permettent pour l'instant de créer des comptes courants, d'effectuer des virements ou des opérations, d'ajuster un découvert autorisé, et d'afficher diverses informations sur les opérations effectuées ou sur le compte via la console.

    En fait ma classe principale banque est assez courte grâce aux autres classes, pour l'instant ça peut ressembler à un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public static void main(String[] args) {
     
    	CompteCourant monCompte = new CompteCourant("monCompte");          
    	CompteCourant monCompte2 = new CompteCourant("monCompte2");
     
    	OperationBancaire op= new OperationBancaire("Créditer",50,Dates.dateActuelle(),Dates.dateActuelle());        
    	monCompte.addOperation(op);              
    	monCompte.definirDecouvert(100);        
    	monCompte.effectuerVirement(151,monCompte2);            
    	monCompte.afficher();            
    	monCompte2.afficher();
     
    }
    Le résultat dans la console donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Le virement de 151.0€ de monCompte pour monCompte2 n'a pas pu être effectué, le solde est insuffisant
    05/02/2012 - 05/02/2012 - Créditer - 50.0€
    ----------------------------------------
    monCompte
    Solde créditeur : 50.0 €
    Découvert autorisé : 100.0€
    Nombre d'opérations : 1
    ----------------------------------------
    ----------------------------------------
    monCompte2
    Solde créditeur : 0.0 €
    Découvert autorisé : 0.0€
    Nombre d'opérations : 0
    ----------------------------------------

    J'ai voulu tester la création de fenêtre avec une JFrame un JPanel et plusieurs JLabel, en fait je voulais afficher ce que j'avais dans ma console dans une fenêtre tout simplement.
    Mon problème est que lorsque j'ai voulu afficher ma méthode afficher() d'un compte dans un JLabel, ça ne marchait pas car ma méthode afficher() est de type void.
    J'ai cru comprendre qu'un JLabel n'acceptait que des chaînes de caractère (String), faut-il que je convertisse en String chacune de mes méthodes ? J'ai déjà essayé et je ne vois pas trop comment faire.

    Ma méthode afficher() ressemble à ceci :

    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
    void afficher(){
            for(int i=0;i<this.operations.size();i++){
                OperationBancaire op=(OperationBancaire) this.operations.get(i);
                op.afficher();
            }
            if(this.solde>=0){
                this.typeSolde="créditeur";
            }else{
                this.typeSolde="débiteur";
            }
            System.out.println("----------------------------------------");
            System.out.println(this.identifiant);
            System.out.println("Solde "+this.typeSolde+" : "+this.getSolde()+" €");
            System.out.println("Découvert autorisé : "+this.montantDecouvertAutorise+"€");
            System.out.println("Nombre d'opérations : "+this.operations.size());
            System.out.println("----------------------------------------");
    }
    Si quelqu'un pouvait m'apporter quelques éclaircissements cela m'aiderait beaucoup
    J'ai commencé par créer une classe Fenetre avec dedans build() et buildContentPane()

  2. #2
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut
    Salut!
    La tu as un affichage console (avec des System.out.println).
    La tu vas devoir mettre en place une liste ou un tableau (JList ou JTable), ces élément vont juste s'appuyer sur ta liste this.operations pour les remplir.
    Regarde un peu les JList et JTable, teste et si tu as un soucis dis le

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 20
    Par défaut
    Ok merci je vais essayer!

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 20
    Par défaut
    Bon du coup j'arrive à afficher mes informations dans une JTable correctement, cependant il y à un truc qui m'embête vraiment c'est qu'on ne peut pas sauter de ligne dans les cellules d'une JTable...
    J'ai regardé un peu sur le net apparemment il faut passer par un TableCellRenderer mais j'ai beau regarder quelques codes j'y comprends pas grand chose pour l'instant

    Si vous pouviez m'aider là-dessus, je cherche juste à faire un saut de ligne pour l'instant :p

  5. #5
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut
    Tu peux mettre le code de ce que tu as fait?

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 20
    Par défaut
    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
    public class Tableau extends JFrame{
        public Tableau(String identifiant1, float solde1, float decouv1, float op1, String operations1, String identifiant2, float solde2, float decouv2, float op2, String operations2) {
            super();
     
            setTitle("Comptes courants - SLAM2");
            setSize(320,240);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setLocationRelativeTo(null);
            //setResizable(false);
     
            Object[][] donnees = {
                    {identifiant1, solde1+"€", decouv1+"€", op1, operations1},
                    {identifiant2, solde2+"€", decouv2+"€", op2, operations2},
            };
     
            String[
                    ] entetes = {"Compte","Solde","Découvert autorisé","Nombre d'opérations","Opérations"};
     
            JLabel label = new JLabel("<html><u>Gestion des comptes courants</u><br /><br /></html>",SwingConstants.CENTER);
     
            JTable tableau = new JTable(donnees, entetes);
            tableau.getColumnModel().getColumn(0).setPreferredWidth(150);
            tableau.getColumnModel().getColumn(1).setPreferredWidth(150);
            tableau.getColumnModel().getColumn(2).setPreferredWidth(150);
            tableau.getColumnModel().getColumn(3).setPreferredWidth(150);
            tableau.getColumnModel().getColumn(4).setPreferredWidth(350); 
     
            tableau.setFont(new Font(null,Font.PLAIN,14));
            tableau.getTableHeader().setFont(new Font(null,Font.PLAIN,14));
     
     
            getContentPane().add(label, BorderLayout.NORTH);
            getContentPane().add(tableau.getTableHeader(), BorderLayout.CENTER);
            getContentPane().add(tableau, BorderLayout.SOUTH);
     
            pack();
        }
    }
    Voila ma classe Tableau pour afficher mes valeurs dans un JTable, ensuite pour l'appeler dans mon main, après avoir effectué la création des comptes et diverses opérations je fais un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Tableau("monCompte",monCompte.getSolde(),monCompte.getDecouv(),monCompte.getNbOperations(), monCompte.getOperations(), "monCompte2",monCompte2.getSolde(),monCompte2.getDecouv(),monCompte2.getNbOperations(), monCompte2.getOperations()).setVisible(true);
    Le résultat ressemble à ça après la création de deux comptes et quelques opérations :



    En fait les opérations de la dernière colonne sont tirées d'une ArrayList, donc ils s'affichent tous sur une seule ligne, et j'aimerai sauter une ligne pour chaque opération, je sais que c'est possible, en fait je converti mon ArrayList en String avec toString() mais ça m'affiche maListe(0), maListe(1) etc... sur une seule ligne

    Bon je sais bien que ça peut paraître assez fouillis mais je débute, pour l'instant les seuls langages que j'ai appris sont le PHP / HTML / CSS / SQL, donc java à l'air un peu plus complexe quand même, surtout que j'ai commencé à l'apprendre il n'y a qu'une semaine BIen que le PHP puisse être orienté un peu objet aussi

Discussions similaires

  1. question sur le type "void *"
    Par ChriGoLioNaDor dans le forum C++
    Réponses: 4
    Dernier message: 10/02/2006, 11h27
  2. invalid static_cast from type `void
    Par barbarello dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 04/01/2006, 12h04
  3. Type void
    Par rod59 dans le forum C
    Réponses: 5
    Dernier message: 19/11/2005, 16h01
  4. Type void * ... petite question !
    Par Franck.H dans le forum C
    Réponses: 29
    Dernier message: 28/03/2005, 13h38
  5. type void* dans une structure
    Par barbapapaz dans le forum C
    Réponses: 3
    Dernier message: 16/07/2004, 16h11

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