salut, bon j'ai un petit pb et je veux l'aide si vous voulez,bon j'ai un fichier xml et je veux afficher ce fichier dans un table mais l'affichage se fait verticalement ,je veux afficher le table horizontalement:
donc voila le fichier et la classe java ,je veux seulement la correction :
////le fichier xml
<?xml version="1.0" encoding="UTF-8"?>
<dispositif>
<caracteristiques_dispositif>
<nom_dispositif>cum-356883d3588</nom_dispositif>
<adresse_ip>172.16.26.255</adresse_ip>
<service1>Adobe Reader 8</service1>
<service2>Kaspersky Anti-Virus 6.0</service2>
<service3>Microsoft Office Professional</service3>
<service4>Mozilla Firefox(2.0.0.14)</service4>
<service5>Systran Professional Premium</service5>
<service6>WinRAR archiver 3.70</service6>
<service7>JCreator LE 4.00</service7>
<service8>Borland JBuilder 9 </service8>
</caracteristiques_dispositif>
</dispositif>
//la classe java:
import javax.xml.transform.*;
import javax.xml.parsers.*;
import javax.xml.transform.sax.*;
import org.xml.sax.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import org.w3c.dom.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
public class JTableXml extends JTable {
Element e;
/** Creates a new instance of JTableXml */
public JTableXml(Element elem){
this.e = elem;
System.out.println("tototo" + e.getNodeName());
init();
}
public void init(){
this.setModel(new AbstractTableModel() {
//FONCTION 1:
public String getColumnName(int col) {
return JTableXml.this.getColumnName(col);
}
//FONCTION 2:
public int getRowCount() { return JTableXml.this.getRowCount(); }
//FONCTION 3:
public int getColumnCount() {return JTableXml.this.getColumnCount();}
//FONCTION 4:
public Object getValueAt(int row, int col) {
return getValueAt(row, col);
}
//FONCTION 5:
public boolean isCellEditable(int row, int col)
{ return true; }
//FONCTION 6:
public void setValueAt(Object value, int row, int col) {
JTableXml.this.setValueAt(value, row, col);
fireTableCellUpdated(row, col);
}
});
}
public String getColumnName(int col) {
for(int i=0; i< e.getChildNodes().getLength(); i++ ){
if(e.getChildNodes().item(i).getNodeType()!= Element.TEXT_NODE){
int p=-1;
for(int j = 0 ; j<e.getChildNodes().item(i).getChildNodes().getLength(); j++){
if(e.getChildNodes().item(i).getChildNodes().item(j).getNodeType()!= Element.TEXT_NODE)
p++;
if(p==col)
return e.getChildNodes().item(i).getChildNodes().item(j).getNodeName();
}
}
}
return null;
}
public int getRowCount() {
if(e==null) return 0;
int p=0;
for(int i=0; i< e.getChildNodes().getLength(); i++ ){
if(e.getChildNodes().item(i).getNodeType()!= Element.TEXT_NODE)
p++;
}
return p;
}
public int getColumnCount() {
int p=0;
for(int i=0; i< e.getChildNodes().getLength(); i++ ){
if(e.getChildNodes().item(i).getNodeType()!= Element.TEXT_NODE){
for(int j = 0 ; j<e.getChildNodes().item(i).getChildNodes().getLength(); j++)
if(e.getChildNodes().item(i).getChildNodes().item(j).getNodeType()!= Element.TEXT_NODE)
p++;
return p;
}
}
return 0;
}
public Object getValueAt(int row, int col) {
if(e==null) return null;
int pp = -1;
for(int i=0; i< e.getChildNodes().getLength(); i++ ){
if(e.getChildNodes().item(i).getNodeType()!= Element.TEXT_NODE){
pp++;
if(pp==row){
int p=-1;
for(int j = 0 ; j<e.getChildNodes().item(i).getChildNodes().getLength(); j++){
if(e.getChildNodes().item(i).getChildNodes().item(j).getNodeType()!= Element.TEXT_NODE)
p++;
if(p==col)
try{
return e.getChildNodes().item(i).getChildNodes().item(j).getFirstChild().getNodeValue();
}
catch(Exception er){er.printStackTrace();};
}
}
}
}
return null;
}
public boolean isCellEditable(int row, int col) {
return true;
}
public void setValueAt(Object value, int row, int col) {
}
public static void main(String[] args) {
try{
DocumentBuilderFactory DBF = DocumentBuilderFactory.newInstance();
Document doc = DBF.newDocumentBuilder().parse(JTableXml.class.getResourceAsStream("monfichier.xml"));
System.out.println(doc.getDocumentElement().getNodeName());
JTableXml jtx = new JTableXml(doc.getDocumentElement());
JFrame f = new JFrame();
f.getContentPane().setLayout(new BorderLayout());
f.getContentPane().add(jtx.getTableHeader(), BorderLayout.NORTH);
f.getContentPane().add(jtx, BorderLayout.CENTER);
f.pack();
//f.show();
f.setVisible(true);
}catch(Exception e){
e.printStackTrace();
}
}
}