import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class TableModelListenerDemo extends JFrame
{
JPanel contentpane=new JPanel();
JTable table;
JScrollPane jScrollPane1=new JScrollPane();
JTextArea jTextArea1=new JTextArea();
JScrollPane jScrollPane2=new JScrollPane(jTextArea1);
public TableModelListenerDemo()
{
try
{jbInit();}
catch(Exception e){}
}
public static void main(String[] args)
{
TableModelListenerDemo frame=new TableModelListenerDemo();
frame.setVisible(true);
}
//当窗口关闭时清空内存
protected void processWindowEvent(WindowEvent e)
{
if(e.getID()==WindowEvent.WINDOW_CLOSING)
{
System.exit(0);
}
}
private void jbInit() throws Exception
{
contentpane=(JPanel)this.getContentPane();
//设置窗口的标题,大小与布局
setTitle("ListSelectionListner 程序演示");
setSize(new Dimension(421,340));
contentpane.setLayout(null);
Object[][] data={
{"小李","男","滑雪",new Integer(20),"英语",new Boolean(true)},
{"小青","女","保龄球",new Integer(17),"绘画",new Boolean(true)},
{"小吴","男","跑步",new Integer(23),"管理",new Boolean(true)},
{"小和","女","演讲",new Integer(25),"会计",new Boolean(false)},
{"小许","女","游泳",new Integer(15),"数学",new Boolean(false)}
};
String[] columnNames={"姓名","性别","爱好","年龄","专业","是否被录取"};
//创建一个简单的表格
table=new JTable(data,columnNames);
table.setRowHeight(20);//设置表格的行高度
//当表格的内容改变的时候取得表格的内容
final TableModel model=table.getModel();
model.addTableModelListener(new TableModelListener(){
public void tableChanged(TableModelEvent e)
{
//表格的行与列从0开始
int row=e.getFirsRow();
int column=e.getColumn();
//取得列表框的数据
Object data=model.getValueAt(row,column);
jTextArea1.append("单元格("+(row+1)+","+(column+1)+")="+data.toString()+"\n");
table.requestFocus();
}
});
//向容器加入各个控件
jScrollPane1.getViewport().add(table);
jScrollPane1.setBounds(new Rectangle(19,30,377,142));
jScrollPane2.setBounds(new Rectangle(21,203,376,105));
contentpane.add(jScrollPane1,null);
contentpane.add(jScrollPane1,null);
}
}
这是全部代码
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class TableModelListenerDemo extends JFrame
{
JPanel contentpane=new JPanel();
JTable table;
JScrollPane jScrollPane1=new JScrollPane();
JTextArea jTextArea1=new JTextArea();
JScrollPane jScrollPane2=new JScrollPane(jTextArea1);
public TableModelListenerDemo()
{
try
{jbInit();}
catch(Exception e){}
}
public static void main(String[] args)
{
TableModelListenerDemo frame=new TableModelListenerDemo();
frame.setVisible(true);
}
//当窗口关闭时清空内存
protected void processWindowEvent(WindowEvent e)
{
if(e.getID()==WindowEvent.WINDOW_CLOSING)
{
System.exit(0);
}
}
private void jbInit() throws Exception
{
contentpane=(JPanel)this.getContentPane();
//设置窗口的标题,大小与布局
setTitle("ListSelectionListner 程序演示");
setSize(new Dimension(421,340));
contentpane.setLayout(null);
Object[][] data={
{"小李","男","滑雪",new Integer(20),"英语",new Boolean(true)},
{"小青","女","保龄球",new Integer(17),"绘画",new Boolean(true)},
{"小吴","男","跑步",new Integer(23),"管理",new Boolean(true)},
{"小和","女","演讲",new Integer(25),"会计",new Boolean(false)},
{"小许","女","游泳",new Integer(15),"数学",new Boolean(false)}
};
String[] columnNames={"姓名","性别","爱好","年龄","专业","是否被录取"};
//创建一个简单的表格
table=new JTable(data,columnNames);
table.setRowHeight(20);//设置表格的行高度
//当表格的内容改变的时候取得表格的内容
final TableModel model=table.getModel();
model.addTableModelListener(new TableModelListener(){
public void tableChanged(TableModelEvent e)
{
//表格的行与列从0开始
int row=e.getFirsRow();
int column=e.getColumn();
//取得列表框的数据
Object data=model.getValueAt(row,column);
jTextArea1.append("单元格("+(row+1)+","+(column+1)+")="+data.toString()+"\n");
table.requestFocus();
}
});
//向容器加入各个控件
jScrollPane1.getViewport().add(table);
jScrollPane1.setBounds(new Rectangle(19,30,377,142));
jScrollPane2.setBounds(new Rectangle(21,203,376,105));
contentpane.add(jScrollPane1,null);
contentpane.add(jScrollPane1,null);
}
}
这是全部代码
import javax.swing.event.TableModelListener;还有这句有问题:
int row=e.getFirsRow();
应该是:int row=e.getFirstRow(); 少了个“t”,拼写错误,OK了
加入了那个包后这句又出了同样的错
import javax.swing.event.*;推荐使用JB7,你用JB7系统就提示你了我已经编译通过了!逻辑上有没有错我就不知道了