用java做swing,在jtable一列里加了按钮,用来点击删除这一列的数据,操作相应的数据库,但是如何写按钮监

如何写按钮监听。jtb.getColumnModel().getColumn(9).setCellRenderer(newTableRender(jbt));按钮这样加进... 如何写按钮监听。jtb.getColumnModel().getColumn(9).setCellRenderer(new TableRender(jbt));按钮这样加进去的。
我觉得这个点击事件应该建立在jtable的基础上,不是单纯的对这个按钮进行监听,这个按钮被应用到jtable中而已。
展开
 我来答
little902
2010-12-13 · TA获得超过811个赞
知道小有建树答主
回答量:1162
采纳率:0%
帮助的人:791万
展开全部
其实这按钮只是一个样式。也可以是一个字符串。那么你要监听的是你的jtable
给你的jtable添加一个MouseListener
在实现MouseListener 的类中有一个方法 以下代码是我原来做的你可以参考以下
public void mousePressed(MouseEvent e)
{
if (e.getClickCount() >= 2)
{
int row = dataTable.rowAtPoint(e.getPoint());
int column = dataTable.columnAtPoint(e.getPoint());
if (column == 4)// 显示remark 字段
{
JOptionPane.showMessageDialog(this, dataTable.getValueAt(row, column), "备注详细", 1);
}
else if (column == 5)// 询问是否删除
{
String date = (String) dataTable.getValueAt(row, 0);
String type1 = (String) dataTable.getValueAt(row, 1);
String type2 = (String) dataTable.getValueAt(row, 2);
String fee = (String) dataTable.getValueAt(row, 3);
String remark = (String) dataTable.getValueAt(row, 4);
String idKey = (String) dataTable.getValueAt(row, 5);
String info = date + "\n" + type1 + "\n" + type2 + "\n" + fee + "\n" + remark;
int confirm = JOptionPane.showConfirmDialog(this, info, "是否删除??",
JOptionPane.YES_NO_OPTION);
if (confirm == 0)
{
try
{
AccountService.delete(date, idKey);

if (date == null || "".equals(date))
{
date = Util.getToday();
}
list = AccountService.getOneDayInfo(date);
dataScrollPane.setViewportView(getDataTable(list));
}
catch (Exception e1)
{
JOptionPane.showMessageDialog(this, "删除异常");
}
}
}
}
}
匿名用户
2010-12-13
展开全部
jbt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int selRow = jtb.getSelectRow();
jtb.getModel().removeRow(selRow );
}
});
凭记忆写的,函数名字肯能会不对
================
建立在table基础上,就不需要按钮了,可以给个checkbox,或者选中行,选中了,在外面加个按钮点击删除。
另:整个table一列就一个按钮的实例,其实就相当于对于整个table的了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kuailexbd
2010-12-13 · 超过27用户采纳过TA的回答
知道答主
回答量:165
采纳率:0%
帮助的人:0
展开全部
btnDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
btnDelete.setEnabled(false);
try {
del();
} catch (AxisFault e1) {
e1.printStackTrace();
}
btnDelete.setEnabled(true);
}
});
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式