我知道如何填充 jtable 并且我已经为上面的代码准备了工作正常的代码。但问题是它在另一个项目中工作,但在我当前的项目中工作。两个项目的代码是相同的。这是代码... purchaswtab 是已经使用 Swing Palette 创建的表名称。该函数在 Item Master 退出按钮的情况下执行。 数组 ap 的数组元素被定义为我必须从结果集中的给定位置获取它们。
public void populatetable(ItemMaster imm)
{
imm.dispose();
String t[][]=new String [30][10];
int[] ap={19,1,2,4,18,16,17};
Object[] h1=new Object[7];
String a1,a2;
int j=0,i=1;
int len=0;
try
{
st=fun.connect1();
String query="select * from Temp_Purchase";
ResultSet rs=st.executeQuery(query);
ResultSetMetaData rsmd=rs.getMetaData();
while(rs.next())
{
int k=0;
for(i=1;i<=7;i++,k++ )
{
t[j][i-1]=rs.getString(ap[k]);
System.out.println(t[j][i-1]);
}
j++;
len++;
}
fun.close();
}
catch(Exception e)
{
fun.close();
System.out.println("Exception:"+e);
}
DefaultTableModel de=(DefaultTableModel)purchaseTab.getModel();
purchaseTab=new JTable(de);
//Code for filling data into table
for(i=0;i<len;i++)
{
for(j=1;j<=7;j++)
{
h1[j-1]=t[i][j-1];
}
if(h1[0]=="0")
{
h1[0]=Boolean.FALSE;
}
de.insertRow(i,h1);
}
//jsp.setViewportView(Table);
}
最佳答案
将
while(rs.next())
中的 evetything 替换为de.addRow(new Object[..., ..., ...]);
您必须将
DefaultTableModel de
声明为局部变量,并在调用fun
之前初始化然后将
DefaultTableModel de
传递给JTable
,例如myTable(de);
或myTable.setModel(de)
使用
Object[]
代替String[]
的限制,那么您可以store various data type inDefaultTableModel
关于java - 如何使用jtable第一列中的复选框将数据库中的数据显示到jtable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21045051/