package _16;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
// 主窗口类
public class AbstractTableModelDemo extends JFrame {
public AbstractTableModelDemo() {
MyTable myTable = new MyTable();
JTable t = new JTable(myTable);
JScrollPane s = new JScrollPane(t);
add(s);
}
public static void main(String args[]) {
AbstractTableModelDemo frame = new AbstractTableModelDemo();
frame.setTitle("JTable");
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
// 自定义表格模型(继承AbstractTableModel)
class MyTable extends AbstractTableModel {
// 表头
String[] columnNames = { "First Name", "Last Name", "Sport", "#of Years", "Vegetarian" };
// 表格数据
Object[][] data = {
{ "Kathy", "Smith", "Snowboarding", 5, false },
{ "John", "Doe", "Rowing", 3, true },
{ "Sue", "Black", "Knitting", 2, false },
{ "Jane", "White", "Speed reading", 20, true },
{ "Joe", "Brown", "Pool", 10, false }
};
// 获取列的类型(用于自动渲染组件,如布尔值显示为复选框)
@Override
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
// 获取行数
@Override
public int getRowCount() {
return data.length;
}
// 获取列数
@Override
public int getColumnCount() {
return columnNames.length;
}
// 获取指定单元格的值
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return data[rowIndex][columnIndex];
}
// 获取列名
@Override
public String getColumnName(int column) {
return columnNames[column];
}
}
1783

被折叠的 条评论
为什么被折叠?



