Jtable中添加按钮的问题
swing不是很懂,求大神帮忙看下,为什么按钮出不来Object[][]st=newObject[20][8];Gobackgbk=newGoback();List<Zh...
swing不是很懂,求大神帮忙看下,为什么按钮出不来
Object[][] st = new Object[20][8];
Goback gbk = new Goback();
List<Zhuti> list = gbk.canyin(sql);
Zhuti zht = null;
jbuttons = new JButton[list.size()];
for (int i = 0; i < list.size(); i++) {
jbuttons[i] = new javax.swing.JButton("" + i);
jbuttons[i].setText("\u67e5\u770b");
jbuttons[i].setName("chakan" + i);
}
if (null != list) {
for (int i = 0; i < (list.size() > 20 ? 20 : list.size()); i++) {
zht = (Zhuti) list.get(i);
st[i][0] = String.valueOf(i + 1);
st[i][1] = zht.getEntID();
st[i][2] = zht.getEntName();
st[i][3] = zht.getLicense();
st[i][4] = zht.getEntaddr();
st[i][5] = zht.getLiaddr();
st[i][6] = zht.getEndTime();
st[i][7] = jbuttons[i];
}
}
jTable1.setModel(new javax.swing.table.DefaultTableModel(
getobject(hql), str));
jTable1.setDefaultRenderer(JButton.class,
new ComboBoxCellRenderer());
}
执行之后,按钮一列都变成了字符串,是哪里出错了吗 展开
Object[][] st = new Object[20][8];
Goback gbk = new Goback();
List<Zhuti> list = gbk.canyin(sql);
Zhuti zht = null;
jbuttons = new JButton[list.size()];
for (int i = 0; i < list.size(); i++) {
jbuttons[i] = new javax.swing.JButton("" + i);
jbuttons[i].setText("\u67e5\u770b");
jbuttons[i].setName("chakan" + i);
}
if (null != list) {
for (int i = 0; i < (list.size() > 20 ? 20 : list.size()); i++) {
zht = (Zhuti) list.get(i);
st[i][0] = String.valueOf(i + 1);
st[i][1] = zht.getEntID();
st[i][2] = zht.getEntName();
st[i][3] = zht.getLicense();
st[i][4] = zht.getEntaddr();
st[i][5] = zht.getLiaddr();
st[i][6] = zht.getEndTime();
st[i][7] = jbuttons[i];
}
}
jTable1.setModel(new javax.swing.table.DefaultTableModel(
getobject(hql), str));
jTable1.setDefaultRenderer(JButton.class,
new ComboBoxCellRenderer());
}
执行之后,按钮一列都变成了字符串,是哪里出错了吗 展开
1个回答
展开全部
对你的需求,简单一点,定义一个类,继承DefaultTableCellRenderer,在其中方法getTableCellRendererComponent中直接返回单元格内的按钮即可。
事实上,我们不一定需要将按钮直接放到表格中,放一个需要显示的字符串就可以了,也省去了定义Renderer的功夫。如果需要实现单元格的点击事件,直接写一个TableCellEditor就可以。
你现在的方式,即使能够显示成按钮的样子,也无法点击,还是要写TableCellEditor.
事实上,我们不一定需要将按钮直接放到表格中,放一个需要显示的字符串就可以了,也省去了定义Renderer的功夫。如果需要实现单元格的点击事件,直接写一个TableCellEditor就可以。
你现在的方式,即使能够显示成按钮的样子,也无法点击,还是要写TableCellEditor.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询