JAVA求助关于JTable重复叠加Model的问题

以下是关键代码:privateJButtongetLookResult(){if(LookResult==null){LookResult=newJButton();Lo... 以下是关键代码:
private JButton getLookResult() {
if (LookResult == null) {
LookResult = new JButton();
LookResult.setText(" 查询结果 ");
LookResult.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
LookResult_actionPerformed(e);
}
});
}
return LookResult;
}//此处创建一个按钮,添加事件
private void LookResult_actionPerformed(ActionEvent e) {
DataControl.CreatPO_LookResult();
}//事件处理方法
public static void CreatPO_LookResult() {
Connection conn;
String FLAG = null;
String[] title = { "审批编号", "返回消息", "采购订单编号", "创建状态" };
DefaultTableModel mm = new DefaultTableModel(title, 0); // 定义一个表格模板
String sql = "select * from CREAT_PO_INFORMATION";
try {
conn = ConnectManager.getOraConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String SHENPIID = rs.getString("SHENPIID");
String MESSAGE = rs.getString("MESSAGE");
String PO_NUM = rs.getString("PO_NUM");
if (rs.getString("FLAG").equals("Y")) {
FLAG = "订单创建成功";
} else {
FLAG = "订单创建失败";
}
String[] str_row = { SHENPIID, MESSAGE, PO_NUM, FLAG };
mm.addRow(str_row);// 添加在表模板中
}
CreatPO.getTable().setModel(mm);
CreatPO.getTable().addMouseListener(CreatPO.MouseListener());// 添加双击表格事件
close(stmt);
} catch (SQLException e) {
e.printStackTrace();
}
}//事件处理方法内容
public static MouseAdapter MouseListener() {// 鼠标事件监听
MouseListener = new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
// 是否左建双击
if (e.getClickCount() == 2
&& SwingUtilities.isLeftMouseButton(e)) {
String str = DataControl.CreatPO_getTable_Action();
getJTextArea1().setText(str);
JDialog dlg = getJDlgSetting();
dlg.show();
}
}
};
return MouseListener;
}
}//双击鼠标事件
具体异常如下,在点击查询按钮一次时候,双击表格可以正确弹出JDialog,但是此时再点击一次查询按钮,然后再双击表格就会连续两次弹出JDialog,点击三次按钮就弹出3个JDialog,以此类推,找不到错误原因,不知道在哪里重复调用了,请指教!
这是表格方法
public static JTable getTable1() {
if (table1 == null) {
String[] title = { "审批编号", "提报名称", "提报人", "提报时间", "状态" };
DefaultTableModel mm = new DefaultTableModel(title, 0); // 定义一个表的模板
table1 = new JTable(mm) {
public boolean isCellEditable(int row, int column) {
return false;
}
};
}
return table1;
}
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
渡轮555
2013-04-22 · TA获得超过534个赞
知道小有建树答主
回答量:863
采纳率:100%
帮助的人:658万
展开全部
哪来的查询按钮?
追问
private JButton getLookResult() {
if (LookResult == null) {
LookResult = new JButton();
LookResult.setText(" 查询结果 ");
LookResult.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
LookResult_actionPerformed(e);
}
});
}
这个就是啊,不过我已经解决了。在事件处理的地方加一个判断就可以了。谢谢啦,50分送你
追答
thanks
最好在mouseclick 里监听鼠标双击
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式