bonjour
En compilant mon prg,ce dernier m'annonce ce message
Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem:
The type Fenetre.ZModel must implement the inherited abstract method TableModel.getValueAt(int, int)

pourriez vous m'aidez svp

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
 
import java.awt.Component;
import javax.swing.JButton;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
 
public class TableCompnent extends DefaultTableCellRenderer
{
 public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column)
 {
	 if(value instanceof JButton)
	 {
		 return(JButton)value;
	 }
	 else
		 return this;
 }
}
 
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
 
public class Fenetre extends JFrame 
{
	 private JTable tableau;
	 private JButton change = new JButton("Changer la taille");
	private Object[][] data;
 
	 public Fenetre()
	 {
	 this.setLocationRelativeTo(null);
	 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	 this.setTitle("JTable");
	 this.setSize(600, 140);
 
	 Object[][] data = 
	 {	
	  {"Cysboy", new JButton("6boy"),new Double(1.80),new Boolean(true)},
	  {"BZHHydde",new JButton("BZH"),new Double(1.78),new Boolean(false)},
	  {"IamBow",new JButton("Bon"),new Double(1.90),new Boolean(false)},
	  {"FunMan", new JButton("Year"),new Double(1.85),new Boolean(true)}	    
	 };
 
	 String  title[] = {"Pseudo", "Age", "Taille","OK?"};
 
	 ZModel model=new ZModel(data,title);
 
	 System.out.println("Nombre de colonne:"+model.getColumnCount());
	 System.out.println("Nombre de ligne:"+model.getRowCount());
 
	 this.tableau = new JTable((TableModel) model);	
	 this.getContentPane().add(new JScrollPane(tableau), BorderLayout.CENTER);
	}
 
	class ZModel extends AbstractTableModel
	{
	 private Object[][]data;
	 private String[]title;
 
	 /*Constructeur
	 * @param data
	 * @param title
	 */
	 public ZModel(Object[][]data,String[]title)
	 {
	  this.data=data;
	  this.title=title;
	 }
 
	 /*Retourne le nombre de colonnes */
	 public int getColumnCount()
	 {
	  return this.title.length;
	 }
 
	 /* Retourne le nombre de lignes */
	 public int getRowCount()
	 {
	  return this.data.length;
	 }
 
	 /* Retourne le titre de la colonne à l'indice spécifié */
	 public String getColumnName(int col)
	 {
	  return this.title[col];
	 }
	}
 
	/* Retourne la classe de la donnée de la colonne*/
	public Class getColumnClass(int col)
	{
		return this.data[0][col].getClass();
	}
 
	/* Retourne vrai si la cellule éditable:celle-ci sera donc éditable
	 * @return boolean
	 * */
	public boolean isCellEditable(int row,int col)
	{
		if(getValueAt(0,col)instanceof JButton)
		return false;
		return true;
	}
	 /* Retourne la valeur à l'emplacement spécifié*/
	 public Object getValueAt(int row,int col)
	 {
	  return this.data[row][col];
 
	 }
 
 
	 public static void main(String[]args)
	 {
	  Fenetre fen=new Fenetre();
	  fen.setVisible(true);
	 }
	}