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 :

Comment integrer des jlabel avec du texte


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 58
    Points
    58
    Par défaut Comment integrer des jlabel avec du texte
    Salut a tous,


    Je suis en train de faire un forum en java.
    J'ai creer une Jlist qui contient les sujets du forum.
    Actuellment, lorsque je clique sur un sujet dans ma liste de sujet, un conteneur de type jtextarea affiche le message complet dans un string.


    Le fonctionnement en interne est le suivant:
    Sur le clic d'un sujet, je recupere l'objet sujet


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void valueChanged(ListSelectionEvent e) {
     
    		      if (e.getValueIsAdjusting())
    	            return;
     
    	        JList theList = (JList)e.getSource();
    	        if (theList.isSelectionEmpty()) {
    	           // text_message.se.setIcon(null);
    	        } else {
    	            index = theList.getSelectedIndex();
    	            obj_suj= (Sujet)listeDesSujets.elementAt(index);
    	            String sujet=obj_suj.getSujet();
    	            text_message.setText(f.listerMessages(sujet));


    J'apelle la methode de ma classe principale f.listerMessages(sujet)
    (methode ci dessous)



    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
    		public String listerMessages(String sujet)
    		{
     
    			Sujet obj_suj;
    			String lbl_sujet;
    			String allMessage=new String("");
     
    			for (int i=0;i<listeSujets.size();i++)
    			{
    			obj_suj=(Sujet)listeSujets.elementAt(i);
    			lbl_sujet=obj_suj.getSujet();
    			if (lbl_sujet.equals(sujet))
    				{
    			   allMessage=obj_suj.listerMessagesInterf(sujet);
    				}
    			}
    		return allMessage;
    		}

    Dans la methode ci dessus j'apelle la methode lister messages de l'objet sujet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public String listerMessagesInterf(String sujet)
    	{
     
    	for (int i=0;i<listeMessage.size();i++)
    		{
     
    		Message m=listeMessage.elementAt(i);
     
    		s=s+m.toString()+" ";
     
    		}
    //on renvoi un tableau ou tous les messages vont s'enchainer

    return s;
    }


    et enfin je fais appel a la methode tostring de la classe message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public String toString()
    	{
     
     
    		ligne=ligne;
    		ligne=ligne+dateMsg;
    		ligne=ligne+" à "+heure_msg;
    		ligne=ligne+", écrit par "+login;
    		ligne=ligne+sep1;
    		ligne=ligne+"\n => "+contenu_msg;
     
    		return ligne;
    	}

    Bref, beaucoup de chose pour pas grand chose.
    Donc pour recapituler, lorsque je clique sur un sujet jobtiens un string qui contient tout le message.

    Au lieu d'afficher un long string j'aimerais mettre le tout sous forme de label et surtout pouvoir crrer des liens sur certains elment comme le login.
    Par exemple si je clique sur le login ca m'afficherai les infos sur la personne.
    Probleme , je sais pas sous quelle forme renvoyer le resultat pour que sur un clic dans la jlist le message soit affiché avec ses reponses.

    j'ai essaye ca dans la classe messages :


    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
     
    	public JTextPane AffichageMessage()
    	{
     
     
    		JTextPane jtp=new JTextPane();
    		jtp.setLayout(new FlowLayout(FlowLayout.CENTER));
    		JLabel lbl_dateMsg=new JLabel("date");
    		JLabel lbl_heure_msg=new JLabel("heure_msg");
    		JLabel lbl_login=new JLabel("login");
    		JLabel lbl_contenu_msg=new JLabel("contenu_msg");
    		lbl_login.addMouseListener(this);
    		jtp.add(lbl_contenu_msg);
    		jtp.add(lbl_dateMsg);
    		jtp.add(lbl_heure_msg);
    		jtp.add(lbl_login);
     
    		return jtp;
     
    }
    puis ca dans la classe sujet :





    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
    public JtextPane listerMessagesInterfa(String sujet)
    	{
     
    		JtextPane mess;
    JtextPane jp;
     
    	for (int i=0;i<listeMessage.size();i++)
    		{
     
    		Message m=listeMessage.elementAt(i);
    		jp.setLayout(GridLayout(listeMessage.size()-1,1));
    		mess=m.AffichageMessage();
    		jp.add(mess);
     
    		}
     
    	//on renvoi un tableau ou tous les messages vont s'enchainer
     
    	return jp;
    	}
    ca dans la classe forum :


    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
    	public JTextPane listerMessagejpanel(String sujet)
    		{
     
    			Sujet obj_suj;
    			String lbl_sujet;
    			JTextPane jp=null;
     
    			for (int i=0;i<listeSujets.size();i++)
    			{
    			obj_suj=(Sujet)listeSujets.elementAt(i);
    			lbl_sujet=obj_suj.getSujet();
    			if (lbl_sujet.equals(sujet))
    				{
    				jp=obj_suj.listerMessagesInterfa(sujet);
    				}
    			}
    		return jp;
    		}

    et enfin cela dans la classe dinterface lorsque on clique dans la liste des sujets :

    text_message.setText(f.listerMessages(sujet)); //listerMessagejpanel renvoi un JTEXTPANE


    Bref , pas moyen de faire ce que je veux !!!

    Help me !!

  2. #2
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Points : 730
    Points
    730
    Par défaut
    Salut,

    Est-ce que tu peux être plus précis sur ton problème???
    5 lignes maximum pour poser une question simple.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Points : 115
    Points
    115
    Par défaut
    pour un texte en JLabel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    JLabel text=new JLabel("ton texte");
    //pour l'afficher metode avec les panels
    panel1.add(text);
    //methode absolu
    text.setBounds(x,y,x1,y1)
    //x y coordonner du point de depart x1 y1 taille de ton JLabel
    pour le lien je n'ai pas trouvé a ce jour tu peux peut etre essayer de faire un bouton invisible avec uniquement son nom de visible ce qui te fera en quelque sorte un lien

  4. #4
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    JTextPane gère les liens hypertext. Je ne crois pas que cela soit possible dans un JLabel.
    Pour tester, sachant que les JLabel supprote l'HTML, essai de mettre une référence dedans.

Discussions similaires

  1. [Jlabel] Comment creer un label avec deux textes centrés?
    Par jlassiramzy dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 25/12/2006, 17h20
  2. Réponses: 2
    Dernier message: 30/06/2006, 16h22
  3. comment supprimer des mots d'un texte
    Par visteur dans le forum Langage
    Réponses: 3
    Dernier message: 16/03/2006, 15h11
  4. Comment Integré une lib avec VS2005?
    Par ekinox17 dans le forum MFC
    Réponses: 23
    Dernier message: 13/02/2006, 08h51
  5. [Requete] Comment ignorer des lignes avec un LOAD DATA
    Par frangin2003 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/11/2005, 12h14

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