package table;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.event.*;public class TableDemo extends JFrame{
JTextArea txt=new JTextArea(4,20);
class DataModel extends AbstractTableModel{
Object[][] data={{"one","two","three","four"},{"five","six","seven","eight"},{"nine","ten","eleven","twelve"},};
class TML implements TableModelListener{
public void tableChanged(TableModelEvent e){
txt.setText("");
for(int i=0;i<data.length;i++){
for(int j=0;j<data[0].length;j++)
txt.append(data[i][j]+" ");
txt.append("/n");
}
}
}
public DataModel(){
addTableModelListener(new TML());
}
public int getColumnCount(){
return data[0].length;
}
public int getRowCount(){
return data.length;
}
public Object getValueAt(int row,int col){
     return data[row][col];
}
public void setValueAt(Object val,int row,int col){
data[row][col]=val;
fireTableDatachanged();//没有为类型 TableDemo.DataModel 定义方法 fireTableDatachanged() }
public boolean isCellEditable(int row,int col){
return true;
}
}
public TableDemo(){
Container cp=getContentPane();
JTable table=new JTable(new DataModel());
cp.add(new JScrollPane(table));
cp.add(BorderLayout.SOUTH ,txt);
this.setSize(350,200);
this.show();
}
public static void main(String[] args){
TableDemo app=new TableDemo(); }}
这是我在书上看的一个关于使用java表格的例子,我在eclipse中却通不过。它说是没有为类型 TableDemo.DataModel 定义方法 fireTableDatachanged(),是怎么回事?帮忙看看,不胜感激!!!

解决方案 »

  1.   

    public void setValueAt(Object val,int row,int col){ 
    data[row][col]=val; 
    fireTableDatachanged();//没有为类型 TableDemo.DataModel 定义方法 fireTableDatachanged() } 
    public boolean isCellEditable(int row,int col){ 
    return true; 

    } 怎么把方法定义进方法里了?!
      

  2.   


    晕,没看见后面的}。fireTableDataChanged //方法的大小写错了