用java做swing,在jtable一列里加了按钮,用来点击删除这一列的数据,操作相应的数据库,但是如何写按钮监
如何写按钮监听。jtb.getColumnModel().getColumn(9).setCellRenderer(newTableRender(jbt));按钮这样加进...
如何写按钮监听。jtb.getColumnModel().getColumn(9).setCellRenderer(new TableRender(jbt));按钮这样加进去的。
我觉得这个点击事件应该建立在jtable的基础上,不是单纯的对这个按钮进行监听,这个按钮被应用到jtable中而已。 展开
我觉得这个点击事件应该建立在jtable的基础上,不是单纯的对这个按钮进行监听,这个按钮被应用到jtable中而已。 展开
展开全部
其实这按钮只是一个样式。也可以是一个字符串。那么你要监听的是你的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, "删除异常");
}
}
}
}
}
给你的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的了。
public void actionPerformed(ActionEvent e) {
int selRow = jtb.getSelectRow();
jtb.getModel().removeRow(selRow );
}
});
凭记忆写的,函数名字肯能会不对
================
建立在table基础上,就不需要按钮了,可以给个checkbox,或者选中行,选中了,在外面加个按钮点击删除。
另:整个table一列就一个按钮的实例,其实就相当于对于整个table的了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
btnDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
btnDelete.setEnabled(false);
try {
del();
} catch (AxisFault e1) {
e1.printStackTrace();
}
btnDelete.setEnabled(true);
}
});
public void actionPerformed(ActionEvent e) {
btnDelete.setEnabled(false);
try {
del();
} catch (AxisFault e1) {
e1.printStackTrace();
}
btnDelete.setEnabled(true);
}
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询