Bonjour à tous,
j'ai un probleme avec JTable. J'arrive pas à le créer correctement sur le JPanel.
J'ai crée un Jframe qui contient trois onglets. et je voudrais creer un JTable sur le troisième onglet qui s'appelle "Panne". ma Table ne s'affiche pas correctement sur mon onglet ( il manque le nom des colonnes).

voici mon code:
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
136
137
138
139
140
141
142
143
144
145
146
147
 
********************************************
import java.awt.*;
import javax.swing.*;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.awt.event.*;
 
//IHM de SimulatorFrame
class SimFrame	extends 	JFrame 
{ 
 
			JTabbedPane IHM;
			JPanel		simTab;
			JPanel		viewsTab;
			JPanel		panneTab;
//Constructeur
 
	public SimFrame()
	{
 
		setTitle( " IHM" );
		JPanel topPanel = new JPanel();
		topPanel.setLayout( new BorderLayout() );
		getContentPane().add( topPanel );
		setBackground( Color.BLUE );
		// Create the tab pages
		new CreateSimTab();
		new createViewsTab();
		new createPanneTab();
 
		// Create a tab
		IHM = new JTabbedPane();
		IHM.addTab( "Simu", simTab );
		IHM.addTab( "Views ", viewsTab );
		IHM.addTab( "Panne ", panneTab );
		topPanel.add( IHM, BorderLayout.CENTER );
	}
 
 
//L'onglet de Simulator
 class CreateSimTab extends JPanel
	{
	 CreateSimTab()
	 {
		 simTab = new JPanel();
		 simTab.setLayout( null );
	 }
	}
//Fin SimTab
 
//L'onglet Views
class createViewsTab extends JPanel
	{
 
	createViewsTab()
	{
	    viewsTab = new JPanel();
		viewsTab.setLayout( null );
		JLabel Label1 = new JLabel( " Page en construction !!" );
		viewsTab.add( Label1 );
		Label1.setBounds( 150, 130, 250, 20 );
	}
	}
//Fin ViewsTab
 
 
//L'onglet Panne	
 class createPanneTab implements TableModelListener
	{
 
		//Create JTable
	 JButton add = new JButton("Add");
	 JButton remove = new JButton("Remove");
 
	Object[][] donnees = {{"Panne 1", "", "", ""},
				{"Panne 2", "", "", ""},
				{"Panne 3", "", "", ""}}; 
	  String[] nomsColonnes = {"Model", "Param 1", "Param 2", "On/Off"};  
	  JTable table = new JTable(donnees, nomsColonnes);
	  TableModel tableur;
 
		createPanneTab() {
			panneTab = new JPanel();
			panneTab.setLayout( null );
			table.setBounds(50, 50, 300, 80);			
			//table.setPreferredScrollableViewportSize(new Dimension(300, 50));
			//JScrollPane avecAsc = new JScrollPane(table);   
			panneTab.add(table);
			tableur = table.getModel();
			tableur.addTableModelListener(this);
		}
 
		@Override
		public void tableChanged(TableModelEvent e) {
			// TODO Auto-generated method stub
			  if (e.getType() != TableModelEvent.UPDATE) return;
		      int ligne = e.getFirstRow();
		      int colonne = e.getColumn();
		      int i, somme = 0, nb = 0;
		      String chaine;
 
		      if ((colonne > 0) && (colonne < 3))
			{
			  for (i = 1; i < 3; i++)
			    {
			      try
				{
				  chaine = (String)tableur.getValueAt(ligne, i);
				  if (!chaine.equals(""))
				  {
				    somme += Integer.parseInt(chaine);
				    nb++;
				  }
				}
			      catch(NumberFormatException exc) {}
			    }
			  if (nb > 0)
			    tableur.setValueAt(new Integer(somme/nb), ligne, 3);
			  else tableur.setValueAt("", ligne, 3);
			}
		}
	}	// Fin PanneTab
 
}// Fin SimFrame
 
// La calsse Principale
public class Simu {
 
public Simu() {
	super();
}
 
public static void main(String[] args) 
{
	SimFrame maSimu	= new SimFrame();
    maSimu.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent evt)
	  {System.exit(0); }});
    maSimu.pack(); 
    maSimu.setVisible(true); 
    maSimu.setSize(500,500);
}
}
 
******************************************
Vous pouvez exécuter le code pour voir ce qui se passe.

Merci pour votre aide. c'est urgent