Bonjour,

Voilà je suis en train de développer une application pour mon stage. Je fais une interface qui permet de consulter des données d'une base Oracle 10g et je stocke le résultat des requêtes dans une JTable.

Le problème c'est que : quand je change de valeurs pour la requête j'arrive pas a vider la table qui c'était affiché avant (et qui contient le resultat de la req précédente), le résultat s'ajoute en bas du tableau...et ce n'est pas cohérant.

J'ai donc essayé de créer une fonction "clearTable()" dont le code est ci-dessous qui vide le modèle mais ca ne marche pas.

Est ce que vous pouvez m'aider? Est ce un problème d'algo ??


Merci de m'aider.

PS: ci dessous le code de la fonction qui affiche le tableau.

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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
 
 
//**********************************************************
 
public void afficherTableauIndicTpsSejour()
{ 
    //on nettoie le panel, et on enlève le graphe..
    JSP.removeAll();
    pnlPreview.remove(JSP);
    pnlPreview.setVisible(false);
 
 
    modell=new TableauNavigateurModel();
    table = new JTable(modell);
    modell.clearTable();
 
//  Initialisation
    JSP=new JScrollPane(table);
 
  //Ajout des colonnes précédemment déclarées
 
 
			modell.addColumn("N° Prog", liste1.toArray());
			modell.addColumn("Date \nenfournement", liste2.toArray());
			modell.addColumn("Programme", liste3.toArray());
		    modell.addColumn("Cumul", liste4.toArray());
		    modell.addColumn("Programme", liste9.toArray());
		    modell.addColumn("Cumul",liste5.toArray());
		    modell.addColumn("Pourcentage",liste6.toArray());
		    modell.addColumn("Programe", liste10.toArray());
		    modell.addColumn("Cumul",liste7.toArray());
		    modell.addColumn("Pourcentage",liste8.toArray());
 
		    //on force la taille du tableau
			table.getColumnModel().getColumn(0).setPreferredWidth(95);
		    table.getColumnModel().getColumn(1).setPreferredWidth(95);
		    table.getColumnModel().getColumn(2).setPreferredWidth(95);
		    table.getColumnModel().getColumn(3).setPreferredWidth(95);
		    table.getColumnModel().getColumn(4).setPreferredWidth(130);
		    table.getColumnModel().getColumn(5).setPreferredWidth(130);
		    table.getColumnModel().getColumn(6).setPreferredWidth(130);
		    table.getColumnModel().getColumn(7).setPreferredWidth(130);
		    table.getColumnModel().getColumn(8).setPreferredWidth(130);
		    table.getColumnModel().getColumn(9).setPreferredWidth(130);
 
 
    //on informe l'utilisateur que la table est non éditable quand il essaie de modifier une donnée
    table.addMouseListener(new MouseListener() {
        public void mouseClicked(MouseEvent e) {
        if (e.getClickCount() == 2) {
            JOptionPane.showMessageDialog(null, "Information: Vous ne pouvez pas éditer les données!","Information",JOptionPane.INFORMATION_MESSAGE);
        }
        }
 
        public void mouseEntered(MouseEvent e) {}
        public void mouseExited(MouseEvent e) {}
        public void mousePressed(MouseEvent e) {}
        public void mouseReleased(MouseEvent e) {}
        });
 
 
    table.getTableHeader().setFont(table.getFont().deriveFont(Font.BOLD));
    table.setFont(table.getFont().deriveFont(Font.NORMAL));
 
 
    //l'utilisateur ne peut pas déplacer les colonnes
    table.getTableHeader().setReorderingAllowed(false);
 
    //On déclare deux renderer un par défaut et l'autre personnalisé
    TabCellRenderer renderer1 = new TabCellRenderer();
    TabCellRenderer renderer = new TabCellRenderer();
    renderer1.setForeground(Color.black);
    renderer1.setBackground(Color.lightGray);
    int columnNumber= table.getColumnCount();
    for(int j=0; j<columnNumber; j+=2){
      table.getColumnModel().getColumn(j).setCellRenderer(renderer1);  
    }
    table.setDefaultRenderer(Object.class, renderer);
 
 
 
    //Classe qui sert a fractionner les cellules et les regrouper dans une autre	
    TableColumnModel col = table.getColumnModel();
 
    ColumnGroup nbBloc = new ColumnGroup("Nombre de blocs");
    nbBloc.add(col.getColumn(2));
    nbBloc.add(col.getColumn(3));
 
    ColumnGroup billetesMini= new ColumnGroup("% Billettes < tps séjour Mini-1/4h");
    billetesMini.add(col.getColumn(4));
    billetesMini.add(col.getColumn(5));
    billetesMini.add(col.getColumn(6));
 
    ColumnGroup billetesMaxi= new ColumnGroup("% Billettes > tps séjour Maxi");
    billetesMaxi.add(col.getColumn(7));
    billetesMaxi.add(col.getColumn(8));
    billetesMaxi.add(col.getColumn(9));
 
 
    GroupableTableHeader header = new GroupableTableHeader(col);
    header.addColumnGroup(nbBloc);
    header.addColumnGroup(billetesMini);
    header.addColumnGroup(billetesMaxi);
    table.setTableHeader(header);
 
    MultiLineHeaderRenderer renderer2 = new MultiLineHeaderRenderer();
	Enumeration enum = table.getColumnModel().getColumns();
	  while (enum.hasMoreElements()) {
	    ((TableColumn)enum.nextElement()).setHeaderRenderer(renderer2);
	  }    
 
 
    JSP.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    JSP.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
 
    JSP.setSize(pnlPreview.getSize());
    //JSP.setPreferredSize(new Dimension(pnlPreview.getSize().width, (pnlPreview.getSize().height)-10));
 
    JSP.setLocation(5,40);
    JSP.setVisible(true);
    add(JSP);
} 
 
 
/********************************************************
 
 public void clearTable(){
        
        for(int a = 0; a < getRowCount(); a++)
        {
            removeRow(a);
        }
    }
 
/*******************************************************