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 :

[Swing]JscrollPanel affichage d'un vector ou liste d'objet ?


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut [Swing]JscrollPanel affichage d'un vector ou liste d'objet ?
    Bonjour,
    Voila j'ai un soucis avec une interface graphique!
    donc le problème est le suivant :
    J'ai un objet " genre Rectangle( longueur, couleur)"
    et j'execute a partir de l'interface graphique un executable (Action sur un boutton) qui me fournit des données. ces dernieres je veux les afficher sous forme d'une liste (List ou Vector) d'objets dans un ScrollPanel et je ne sais pas comment faire s'il ya des idées svp !!
    et si ce n'est pas bien précis je pourrai developpez avec des portions de codes
    mais pour l'instant s'il ya juste un idée bien pertinente car la j'ai pas beaucoup le temps pour developpez
    Merci d'avance

  2. #2
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,

    tu ajoutes tes objets à une JList, et puis tu mets cette dernière dans un JScrollPane.

    il ne faudra pas oublier de redéfinir la méthode toString() dans ta classe, car c'est elle qui est appelée lors de l'affichage des éléments dans une JList ( je crois...)

  3. #3
    Membre expérimenté Avatar de erictoguem
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 150
    Par défaut
    Si tu veux faire voir plusieurs propriétés de tes objets utilise un JTable

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut
    Bonjour et merci pour vos réponses
    Alors pour la JListe je l'ai déjà essayé ça marche bien mais pour afficher des tableaux de String mais pas pour mes objets ou peut être je ne sais pas très bien m'en servir.
    et pour le JTable j'avais vu un exemple de coloration de rectangles dynamiques
    mais JTable ---> table ??
    car moi je veux afficher sur une seule ligne plusieurs rectangles :s

    Donc s'il y a juste une façon de faire, ça m'aiderai bien

    Merci

  5. #5
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    il suffit de passer un tableau de tes objets à la JList

    j'ai bien précisé qu'il fallait redéfinir la méthode toString() pour que les objets de ta classes s'affichent correctement

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut
    Bonjour
    Merci
    mais c'est ce que j'avais fait au tout debut, et javais une exception du genre ExceptionNullPoointer ou quelque chose comme ça, car a mon avis il a un null !!
    bref mal initialisé !!
    mais quand je mets un tableau de string, ça s'affiche sans problème, sans redefinir toString() :s
    quand vous dites redefinir toString pour un affichage graphique ( objet = rectangle colorié "filRect" ) je ne vois pas comment le faire !!
    bon je vais voir cela de suite .
    Merci

  7. #7
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,

    ce serait bien de nous dire exactement ce que tu veux faire, et de mettre le code que tu as essayé, car là il est pas clair ton problème.


    en attendant plus de détail, voici un exemple qui dessine des rectangles dans une JList

    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
     
    import javax.swing.*;
    import java.awt.*;
     
    class Rectangle
    {
    	Color clr;
    	Rectangle(Color clr)
    	{
    		this.clr = clr;
    	}	
    }
     
    public class ListRect
    {
    	public static void main(String[] args)
    	{
    		Rectangle[] rects = {new Rectangle(Color.BLACK), new Rectangle(Color.RED), 
    				new Rectangle(Color.BLUE), new Rectangle(Color.GREEN)};
    		final JList list = new JList(rects);
    		list.setCellRenderer(new ListCellRenderer()
    		{
    			public Component getListCellRendererComponent(JList list, Object value, 
    					int index, boolean isSelected, boolean cellHasFocus) 
    			{
    				JLabel lbl = new JLabel();
    				lbl.setOpaque(true);
    				Rectangle r = (Rectangle)value;
    				lbl.setPreferredSize(new Dimension(40, 20));
    				lbl.setBackground(r.clr);
    				return lbl;
    			}
    		});
    		JFrame frm = new JFrame();
    		frm.add(list);
    		frm.setSize(100, 400);
    		frm.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    		frm.setVisible(true);
    	}
    }

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut
    Bonsoir,
    Merci herch pour ta réponse !
    en fait ça ne répond pas a mes souhaits!
    en effet pour mes objets ( rectangle ) je souhaite les mettre dans un Vector
    pour que je puisse ajouter dynamiquement mes objets la dedans et d'une façon plus simple !
    après pour l'affichage je souhaite afficher les rectangle ( avec une taille précise) sur une seule ligne ( Horizentalement )
    pour le code c'est un peu le bordel , je code comme un cochon lol
    car j'essaye plusieurs trucs mais je mettrai des bouts de code car sinon ya plsrs class et ca ne va pas etre lisible :
    Class Rectangle :
    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
     
    package graphic;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.util.Vector;
     
    import javax.swing.Icon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    public class Rectangle extends JPanel {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	private Color color;
     
    	private int taille;
     
    	private int rectHeight;
     
    	private int offsetX;
     
    	public Rectangle() {
    	}
     
    	public Rectangle(Color color, int offsetX, int taille, int rectHeight) {
    		super();
    		this.color = color;
    		this.taille = taille;
    		this.rectHeight = rectHeight;
    		this.offsetX = offsetX;
    		setPreferredSize(new Dimension(taille + offsetX, rectHeight));
    	}
     
    	public void paint(Graphics g) {
    		super.paint(g);
    		g.setColor(color);
    		g.fillRect(offsetX, 40, taille + offsetX, rectHeight);
    	}
    .......... Code pas nécessaire ......
    ...
    J'ai d'autres Classe mais juste pour la lecture de fichiers et d'execution d'un programme distant.
    sinon pour 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
    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
    public class Affichage extends javax.swing.JFrame {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	Runtime proc = Runtime.getRuntime();
     
          ...
     
    	Vector<Rectangle> list = new Vector<Rectangle>();
           JList liste2 = new JList(list);
     
           ...
     
    public Affichage() {
     
    		//list.add(Rect);
    		initComponents();
     
    	}
    private void initComponents() {
     
    		jToolBar1 = new javax.swing.JToolBar();
    		jLabel7 = new javax.swing.JLabel();
    		jPanel1 = new javax.swing.JPanel();
    		jLabel3 = new javax.swing.JLabel();
    		jTextField1 = new javax.swing.JTextField();
    ...
     
                jScrollPane1 = new javax.swing.JScrollPane(liste2);
    ....
    // ICI JE GERE L'AFFICHAGE SWING ....
     
    public static void main(String args[]) {
    		java.awt.EventQueue.invokeLater(new Runnable() {
     
    			public void run() {
    				new Affichage().setVisible(true);
     
    			}
    		});
    	}
    Bon c'est une partie du code mais je pense que c'est le plus important !!
    sachant que je ne suis pas doué en interface graphique

Discussions similaires

  1. [SWING] [JLIST] Affichage dynamic d une liste de panel
    Par wanchy dans le forum Composants
    Réponses: 1
    Dernier message: 17/09/2007, 19h42
  2. Eviter l'affichage des éléments d'une liste déroulante
    Par auriolbeach dans le forum Access
    Réponses: 1
    Dernier message: 28/02/2006, 08h50
  3. Affichage des mois dans une liste déroulante
    Par Le Rebel dans le forum Langage
    Réponses: 15
    Dernier message: 20/02/2006, 14h37
  4. prob d'affichage de donnée d'1 liste deroulante
    Par zorba49 dans le forum ASP
    Réponses: 5
    Dernier message: 26/08/2005, 15h39
  5. difference entre vector, deque, list et tableau
    Par salseropom dans le forum SL & STL
    Réponses: 8
    Dernier message: 03/01/2005, 14h35

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