各位高手:我是个初学者,不要见笑啊!我的程序如下,编译没问题,但是运行时,表格不能显示。谁能帮我解决啊!!!先谢谢了!!!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
public class JdbcTest {
JFrame frm=null;
JScrollPane jsp=null;
JTable tb=null;
JComboBox cmb=null; JdbcTest() {//构造函数
// TODO Auto-generated constructor stub
frm=new JFrame("JDBC Test");
Container cp=frm.getContentPane();
MyTable tbm=new MyTable();
tb=new JTable(tbm);
cmb=new JComboBox();
cmb.addItem("man");
cmb.addItem("woman");
tb.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(cmb));
tb.setPreferredScrollableViewportSize(new Dimension(300,200));
jsp=new JScrollPane(tb);
frm.setBounds(100,100,500,400);
cp.add(jsp);
frm.setVisible(true);
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}//构造函数 public static void main(String[] args) {
// TODO Auto-generated method stub
new JdbcTest();
}
class MyTable extends AbstractTableModel//定义表格
{
String[] head={"MNo","MName","Sex","Age","Class"};
Object[][] datacol={
{1,"jake",cmb,22,"0633032"},
{2,"lucy",cmb,21,"0633031"}
};
public int getColumnCount()
{
return head.length;
}
public int getRowCount()
{
return datacol.length;
}
public Object getValueAt(int row,int col)
{
return datacol[row][col];
}
public Class getColumnClass(int col)
{
return getValueAt(0,col).getClass();
}
public String getColumnName(int col)
{
return head[col];
}
public boolean isCellEditable(int row,int col)
{
return true;
}
public void setValueAt(Object value,int row,int col)
{
datacol[row][col]=value;
fireTableCellUpdated(row,col);
}
}//定一表格
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
public class JdbcTest {
JFrame frm=null;
JScrollPane jsp=null;
JTable tb=null;
JComboBox cmb=null; JdbcTest() {//构造函数
// TODO Auto-generated constructor stub
frm=new JFrame("JDBC Test");
Container cp=frm.getContentPane();
MyTable tbm=new MyTable();
tb=new JTable(tbm);
cmb=new JComboBox();
cmb.addItem("man");
cmb.addItem("woman");
tb.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(cmb));
tb.setPreferredScrollableViewportSize(new Dimension(300,200));
jsp=new JScrollPane(tb);
frm.setBounds(100,100,500,400);
cp.add(jsp);
frm.setVisible(true);
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}//构造函数 public static void main(String[] args) {
// TODO Auto-generated method stub
new JdbcTest();
}
class MyTable extends AbstractTableModel//定义表格
{
String[] head={"MNo","MName","Sex","Age","Class"};
Object[][] datacol={
{1,"jake",cmb,22,"0633032"},
{2,"lucy",cmb,21,"0633031"}
};
public int getColumnCount()
{
return head.length;
}
public int getRowCount()
{
return datacol.length;
}
public Object getValueAt(int row,int col)
{
return datacol[row][col];
}
public Class getColumnClass(int col)
{
return getValueAt(0,col).getClass();
}
public String getColumnName(int col)
{
return head[col];
}
public boolean isCellEditable(int row,int col)
{
return true;
}
public void setValueAt(Object value,int row,int col)
{
datacol[row][col]=value;
fireTableCellUpdated(row,col);
}
}//定一表格
}
{1,"jake",cmb,22,"0633032"},
{2,"lucy",cmb,21,"0633031"}
};
改为:
Object[][] datacol = { { 1, "jake", "man", 22, "0633032" },
{ 2, "lucy", "woman", 21, "0633031" } };JCheckBox 给定值就可以了
{
if(getValueAt(0,col) != null)
return getValueAt(0,col).getClass();
else
return Object.class;
}
结帖吧