下面是JavaSwing数据库数据在Jtable中显示的代码,在做单击列表返回当前选中行时代码里报的错误求教大神
//窗体里的一段代码,只拷了关键的部位//我的数据库返回值是List<User>//我在WaresServiceImpl中写了方法getWares()把数据库的返回值转换...
//窗体里的一段代码,只拷了关键的部位
//我的数据库返回值是List<User>
//我在WaresServiceImpl中写了方法getWares()把数据库的返回值转换成了Object[][]代码在最后
Object t_title[] = {"商品编号","名称","价格","描述","库存","历史销量"};
WaresServiceImpl wService = new WaresServiceImpl();
Object t_data[][] = null; //这个地方如果不定义成final在下面监听时间
// j_WaresNo.setText(t_data[row][0].toString()); 会报不是final的错误
try {
t_data = wService.getWares(); //如果改成final也会报错
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
jTable1.setModel(new javax.swing.table.DefaultTableModel(t_data,t_title));
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
jTable1.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
int row = jTable1.getSelectedRow();
j_WaresNo.setText(t_data[row][0].toString()); //这个地方报错
j_WaresPrice.setText(t_data[row][1].toString()); //
}
//把List<>转成Object[][]的方法代码
public Object[][] getWares() throws Exception {
WaresDAOImpl waresdao = new WaresDAOImpl();
List<Wares> wares = waresdao.selectWares();
Object[][] data = new Object[wares.size()][];
if (wares.size() > 0) {
for(int i=0;i<wares.size();i++){
Object[] o = new Object[6];
Wares w = wares.get(i);
o[0]=w.getwID();
o[1]=w.getWname();
o[2]=w.getPrice();
o[3]=w.getInfo();
o[4]=w.getSum();
o[5]=w.getCount();
data[i]=o;
}
}
return data;
}
我对JTable不熟悉,只是用了这个办法才实现的在表格里显示数据库的表信息。但是要做单击某一列获取那一列的效果就做不了了,请哪位大神帮我解答下,有什么办法可以解决。或者说有什么更好的实现方案。在这万分感谢了! 展开
//我的数据库返回值是List<User>
//我在WaresServiceImpl中写了方法getWares()把数据库的返回值转换成了Object[][]代码在最后
Object t_title[] = {"商品编号","名称","价格","描述","库存","历史销量"};
WaresServiceImpl wService = new WaresServiceImpl();
Object t_data[][] = null; //这个地方如果不定义成final在下面监听时间
// j_WaresNo.setText(t_data[row][0].toString()); 会报不是final的错误
try {
t_data = wService.getWares(); //如果改成final也会报错
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
jTable1.setModel(new javax.swing.table.DefaultTableModel(t_data,t_title));
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
jTable1.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
int row = jTable1.getSelectedRow();
j_WaresNo.setText(t_data[row][0].toString()); //这个地方报错
j_WaresPrice.setText(t_data[row][1].toString()); //
}
//把List<>转成Object[][]的方法代码
public Object[][] getWares() throws Exception {
WaresDAOImpl waresdao = new WaresDAOImpl();
List<Wares> wares = waresdao.selectWares();
Object[][] data = new Object[wares.size()][];
if (wares.size() > 0) {
for(int i=0;i<wares.size();i++){
Object[] o = new Object[6];
Wares w = wares.get(i);
o[0]=w.getwID();
o[1]=w.getWname();
o[2]=w.getPrice();
o[3]=w.getInfo();
o[4]=w.getSum();
o[5]=w.getCount();
data[i]=o;
}
}
return data;
}
我对JTable不熟悉,只是用了这个办法才实现的在表格里显示数据库的表信息。但是要做单击某一列获取那一列的效果就做不了了,请哪位大神帮我解答下,有什么办法可以解决。或者说有什么更好的实现方案。在这万分感谢了! 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询