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 :cry:
Ni monsieur doc.oracle d'ailleurs
Code:
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 "