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

Composants Java Discussion :

JEditorPane dans cellules JTable


Sujet :

Composants Java

  1. #1
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Septembre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 69
    Points : 86
    Points
    86
    Par défaut JEditorPane dans cellules JTable
    Bonsoir à tous,

    Je rencontre actuellement un problème. Je veux pouvoir créer un tableau de JEditorPane mais je ne parviens pas à inserer du texte. Lorsque je saisie du texte, la cellule ne le récupère pas et le contour passe devient rouge.

    Mon ami google n'a pas voulu m'aider cette fois ci
    Ni monsieur doc.oracle d'ailleurs
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    public class TableauJournal extends AbstractTableModel{
     
     
    		private ArrayList<String> colonnes;
    		private ArrayList<ArrayList<JEditorPane>> lignes; 
     
    		public TableauJournal() 
    		{
    			colonnes = new ArrayList<String>();
    			lignes = new ArrayList<ArrayList<JEditorPane>>();
    			ArrayList<JEditorPane> list = new ArrayList<JEditorPane>();
    			JEditorPane pane = new JEditorPane();
    			pane = new JEditorPane();
    			pane.setContentType("text/html");
    			pane.setMargin(new Insets(0, 10, 0, 10));
    			list.add(pane);
    			lignes.add(list);
    			colonnes.add("Déroulement de l'essai");
    		}
     
     
    	@Override
    	public int getRowCount() 
    	{
    		return lignes.size();
    	}
     
    	@Override
    	public int getColumnCount()
    	{
    		return colonnes.size();
    	}
     
    	@Override
    	public String getValueAt(int rowIndex, int columnIndex)
    	{
    		int taille = lignes.get(rowIndex).get(columnIndex).getDocument().getLength();
    		try 
    		{
    			return lignes.get(rowIndex).get(columnIndex).getDocument().getText(0, taille);
    		} catch (BadLocationException e) {
    			e.printStackTrace();
    			return "erreur";
    		}
    	}
     
    	@Override
    	public void setValueAt(Object aValue, int rowIndex, int columnIndex)
    	{
    		JEditorPane tempo = lignes.get(rowIndex).get(columnIndex);
    		StringBuffer journal = new StringBuffer(tempo.getText());
    		journal.insert(journal.indexOf("</body>"), aValue.toString());
    		tempo.setText(journal.toString());
    	}
     
    	@Override
    	public boolean isCellEditable(int rowIndex, int columnIndex) {
    		return true;
    	}
     
    	@Override
    	public String getColumnName(int columnIndex) 
    	{
    	    return colonnes.get(columnIndex);
    	}
     
    	@Override
    	public Class<?> getColumnClass(int columnIndex)
    	{
    		return JEditorPane.class;
    	}
    Sans la méthode getColumnClass, lorsque je modifie le texte il prend en compte les modifications mais duplique le texte: si le texte est "coucou" et que je tape "coucou ça va" il va garder "coucou coucou ça va "

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Pourquoi tu met des JeditorPane dans ton model? Le JEditorPane c'est une composant faisant partie de la Vue, les vue utilisent des modèles pour stocker leur données, pas l'inverse. Le model n'a pas à utiliser une vue pour stocker sa donnée.

    De plus, tu ajoute à la fin du document au lieu de stocker la nouvelle valeur. Il est normal que tu te retrouver avec de la duplications. Ton model ne devrait avoir qu'une List<String> en terme de valeur et non pas une List<JEditorPane>. JEditorPane n'a rien à faire dans le modèle.

  3. #3
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Septembre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 69
    Points : 86
    Points
    86
    Par défaut
    Salut,

    Effectivement, j'était bien en forme hier

    Il faut utilisé des cellEditor et renderer n'est ce pas ?

    Ha, et cellEditor c'est bien la modification de cellule et le renderer l'affichage ?

    En tout cas merci

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    oui

  5. #5
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Septembre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 69
    Points : 86
    Points
    86
    Par défaut
    Merci

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

Discussions similaires

  1. Mettre plusieurs valeurs dans cellule JTable
    Par totot dans le forum Composants
    Réponses: 6
    Dernier message: 18/05/2015, 15h28
  2. Couleur dans cellule JTable
    Par totot dans le forum Composants
    Réponses: 1
    Dernier message: 17/05/2015, 00h02
  3. Affichage JComboBox dans Cellule JTable
    Par hoook dans le forum Composants
    Réponses: 3
    Dernier message: 12/04/2013, 21h15
  4. [jtable] Champs texte sur pls ligne dans cellule
    Par doudine dans le forum Composants
    Réponses: 8
    Dernier message: 17/11/2005, 12h36
  5. [JTable] Cellules multilignes dans un jtable
    Par chesteric31 dans le forum Composants
    Réponses: 15
    Dernier message: 06/06/2005, 14h50

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