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 :

Problème d'affichage incompréhensible


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 193
    Points : 66
    Points
    66
    Par défaut Problème d'affichage incompréhensible
    Bonjour à tous,

    Désolé pour le titre du post un peu vide et incomplet ... mais je ne vois vraiment pas d'où vient mon problème ni a quoi il est dû.

    Je vous expose la chose:

    Certains ont déja (voir autres posts) vu le principe de mon appli.
    Pour rappel:
    A gauche une Liste contenant des images (qui sont en fait des objets 'Materiel' extends JPanel. Chaque image est un objet fille de la classe mère 'Materiel').
    Ces 'Materiel' peuvent etre drag&drop sur le JPanel a droite de la Liste (Tableau) qui est en layout null.
    A chacun de ces objets est associé une JDialog qui s'ouvre lorsque click droit sur un 'Materiel' , popup > proprietes.
    Dans la classe mere il y a une methode abstract: afficheDialogue, qui est redefinie dans les classes filles.

    Jusqu'ici tout va bien. On click proprietes, hop la JDialog apparait.

    Maintenant, je commence a ecrire le code derriere une JDialog (pour la classe fille 'Rita' extends 'Materiel' donc ... pour que tout le monde suive).
    Cette JDialog est en fait une : 'RitaDialog' extends JDialog.

    Dedans se trouve pour le moment , un JLabel et un JComboBox.
    Dans cette 'RitaDialog' on peut choisir le type de 'Rita'. Ce type sera choisit via la JComboBox, et les infos de la JComboBox sont récupérés dans une BD Mysql.

    Nous en arrivons au probleme.
    Dans un premier temps, je me suis limité a faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // On recupere une liste de String qui sont tous les types de 'Rita' possibles
    types = SqlRequetes.getTypeStation();
    typeStation = new JComboBox(types.toArray());
    this.add (typeStation);
    Je lance l'appli. et en ouvrant les proprietes je vois bien mon label (crée plus haut) et le JComboBox avec les String représentant les types.

    Pour être plus propre, et aussi pour réutiliser ensuite, j'ai voulu créer une classe 'TypeStation', qui est composée d'un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int id;
    String type;
    Comme ca je peux récuperer l'id dans la BD, cela me sera utile par la suite pour voir : avec tel type de station, on a acces a tel type de connexion, etc etc ... enfin ceci n'est pas l'interet du post.

    J' en viens donc à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    types = SqlRequetes.getTypeStation();
    typeStation = new JComboBox(types.toArray());
    this.add (typeStation);
    C'est effectivement le meme code que ci dessus, mais : getTypeStation retourne dans le premier cas un : List<String>, et dans le deuxieme cas un : List<TypeStation>.

    Voici le code de la methode getTypeStation() dans le cas d'un List<TypeStation> (si List<String>, il suffit de remplacer les types et remplacer le add(new TypeStation(id,nom)) par add(nom)
    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
     
    public static Vector<TypeStation> getTypeStation () throws SimulatorException {
            Vector<TypeStation> stations = new Vector();
            try{
                Statement stmt = DBManager.getConnection().createStatement();
                if(stmt==null) throw new SimulatorException("Erreur de Connexion");
                ResultSet rs = stmt.executeQuery("SELECT id,station FROM STATIONS_RITA");
                if(rs==null) throw new SimulatorException("Erreur de Requête");
                while (rs.next()) {
                    int id = rs.getInt("id");
                    String nom = rs.getString("station");
                    stations.add(new TypeStation(id, nom));
                }
            }
            catch (SQLException sqlE){
                    System.out.println("erreur");
            }
            return stations;
        }
    Et bien lorsque je passe par un List<String>, la JDialog de proprietes s'affiche sans probleme, si je passe par un List<TypeStation>, la JDialog de proprietes ne s'affiche jamais ... et aucune erreur a aucun moment ...

    J'espere avoir ete assez clair dans le probleme ... Mais là je ne vois trop pas où est le prob ... ni comment le résoudre.
    Si je veux etre plus clair, je dois paster tout mon projet ... et bon c'est quand meme pas le but

    Si quelqu un a une idée, je suis + que preneur

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    Salut,
    en fait c'est un probleme simple, quand tu passe à ta JcomboBox la liste de string, la comboBox utilise un renderer par défaut, par contre quant elle recoit une liste d'objet 'TypeStation' elle ne sais pas comment faire.... pour gérer l'affichage.
    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
    cb.setCellRenderer(new DefaultCellRenderer(){
     public Component getListCellRendererComponent(
                                               JList list,
                                               Object value,
                                               int index,
                                               boolean isSelected,
                                               boolean cellHasFocus) {
              // récupère ton objet:
              TypeStation type = (TypeStation) value;
              this.setText(type.getLabel());
     
                return this;
            }
     
    });

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 193
    Points : 66
    Points
    66
    Par défaut
    Mmm bhein je pense pas, car j'ai ajouté une méthode toString qui retourne justement un string de ce qui faut, et ca fonctionne nickel dans une JFrame de base, mais pas dans mon cas ...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 193
    Points : 66
    Points
    66
    Par défaut
    vraiment incompréhensible ... c est allucinant ... si je fais dans ma JFrame principale:

    JComboBox brol = new JComboBox (SqlRequetes.getTypeStations());
    this.getContentPane.add (brol);

    aucun probleme ca s affiche. getTypeStations rtourne un vecteur de TypeStation.

    Par contre je fais exactement la meme chose dans ma JDialog ca va plus, il ne m'affiche plus rien ,ni la jdialog ni rien ...

    j y pige rien de rien :s

    Mais je sais pas expliquer + ... a moins de filer tt mon code ... mais je doute que ca en enchante un

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PC portable] probléme affichage incompréhensible
    Par java2dev dans le forum Ordinateurs
    Réponses: 5
    Dernier message: 05/05/2011, 14h55
  2. Problème affichage incompréhensible
    Par Berthey dans le forum Linux
    Réponses: 4
    Dernier message: 23/08/2010, 11h44
  3. [Kylix] problème d'affichage
    Par scalvi dans le forum EDI
    Réponses: 1
    Dernier message: 18/06/2003, 10h07
  4. Réponses: 1
    Dernier message: 06/03/2003, 11h57
  5. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43

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