Sqs
Bonjour,
Ce que tu veux, c'est récupérer pour chaque TR le contenu des TD associés dans le but de les injecter dans un JTable ou comment faire pour ajouter des lignes / colonnes dans un JTable?
Re, après une petite tartiflette, ca va toujours mieux
Et bien, si c'est juste la construction du JTable, comme je te le disais, c'est assez simple, un tableau de String pour les entêtes des colonnes, un tableau a deux dimensions qui va contenir les lignes / colonnes
Voila un petit exemple sur une table toute simple avec 2 colonnes / 2 Lignes (le code html est en dur dans le source)
C'est juste pour donner une idée, faut le repenser pour que ce soit propre aux niveaux de l'utilisation des groupes de regexp etc
Il faudra aussi gérer le fait qu'on peut avoir des balises comme <b>, <i>, etc dans le contenu du td (pour ce qui est du colspan, tu peux laisser tomber, vu qu'il faut le même nombre de colonnes dans le contexte de ton exercice)
Ps : Syntaxe java 1.4, si tu bosses en 1.5 et +, faut penser à typer les Listes etc
Mais dans l'ensemble, ton code devra ressembler à ça.
Bon courage et si tu as besoin, hésites pas à me contacter par MP / via ce post
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 String htmlContent = "<table><tr><td>1.1</td><td>1.2</td></tr><tr><td>2.1</td><td>2.2</td></tr></table>"; try { String TR_PATTERN = "<tr[^>]*>(.*?)</tr>"; String TD_PATTERN = "<td[^>]*>(.*?)</td>"; Pattern pTR = Pattern.compile(TR_PATTERN); Pattern pTD = Pattern.compile(TD_PATTERN); Matcher mTR = pTR.matcher(htmlContent); Matcher mTD = null; List trs = new ArrayList(); while (mTR.find()) { String currentTR = htmlContent.substring(mTR.start(), mTR.end()); mTD = pTD.matcher(currentTR); List tds = new ArrayList(); while (mTD.find()) { tds.add(mTD.group(1)); } trs.add(tds.toArray(new String[0])); } String[] headers = {"titreCol1","titreCol2"}; String [][] content = new String[trs.size()][]; for (int i=0;i<trs.size();i++) { content[i] = (String[])trs.get(i); } JTable jt = new JTable(content,headers); } catch (PatternSyntaxException pse){ pse.printStackTrace(); }
EDIT : Owned à 2 minutes par Herch ^^
Partager