加到按钮上的事件死活不执行

duqingming 2010-08-27 04:34:51
我做一个继承自JPanel的类,在这个类里有加了一个方法,代码如下:
public JButton getEMainBtn() {
if (emailBtn == null) {
// Create an action to add to the Context Menu
final MouseListener action = new MouseListener() {

public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
// 双击
} else if (e.getClickCount() == 1) {
// 单击
}
}

public void mousePressed(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void mouseReleased(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void mouseEntered(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}

public void mouseExited(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
};
emailBtn = new JButton();
emailBtn.setOpaque(false); // 设置组件透明
emailBtn.setBorder(null);
emailBtn.setIcon(SparkRes.getImageIcon(SparkRes.MAIL_16x16));
emailBtn.addMouseListener(action);
}
return emailBtn;
}
其实也很简单,这个方法就是返回一个按钮,这个方法是在继承自JPanel的那个类的构造函数里执行的。代码如下:

add(getEMainBtn(), new GridBagConstraints(index++, 0, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0, 5, 0, 0), 0, 0));

现在的问题是这个按钮是显示出来了,但当用户鼠标点击的时候按钮的事件却没有执行。

那位大侠遇到过这个问题的请指教指教。
...全文
115 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
peenyking 2010-08-31
  • 打赏
  • 举报
回复
检测进入创建按钮的方法,在执行之前,emailBtn是否为空,怀疑 if (emailBtn == null) {。。。//里面的都没执行}。

如果你一开始 emailBtn 就已经是一个实例了,他就不会添加事件了。那样肯定不会执行

再者你是否通过断点检测方法是否进入的?
如果不是 你可以试试,通过调试方式启动,然后看看程序有没有被断点 挂起。
super_stan 2010-08-29
  • 打赏
  • 举报
回复
喔喔喔喔!!!!
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhang0114 的回复:]
你的方法里全是空的,你想让它执行什么?
[/Quote]
码之魂 2010-08-29
  • 打赏
  • 举报
回复
哈哈哈!!!~~~~~~
EngineZhang 2010-08-29
  • 打赏
  • 举报
回复
你的方法里全是空的,你想让它执行什么?
jiang521725 2010-08-27
  • 打赏
  • 举报
回复
我会关注你的
huntor 2010-08-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 crazylaa 的回复:]

把 throw new UnsupportedOperationException("Not supported yet."); 都删除。
[/Quote]
应该使用
new MouseAdapter(){
@Override public void mouseClicked(MouseEvent e){
... // process
}
};
crazylaa 2010-08-27
  • 打赏
  • 举报
回复
把 throw new UnsupportedOperationException("Not supported yet."); 都删除。
duqingming 2010-08-27
  • 打赏
  • 举报
回复
拷,沉的也太快了。差点没找找。
顶一个。

50,545

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧