我做一个继承自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));现在的问题是这个按钮是显示出来了,但当用户鼠标点击的时候按钮的事件却没有执行。那位大侠遇到过这个问题的请指教指教。
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));现在的问题是这个按钮是显示出来了,但当用户鼠标点击的时候按钮的事件却没有执行。那位大侠遇到过这个问题的请指教指教。
解决方案 »
- 如何得到JComboBox和JTextField里面的数据
- ★求助:自定义jar包如何嵌套doc注释?
- 如何区别两个java程序是否运行在同一个虚拟机上
- 一个IO流的问题,请教高手!!!只要解决,马上结帖!
- Java 收邮件奇怪的问题
- 3个按钮 分别显示画3个圆 可点按钮 没反映 有源程序很小的,程序编译通过, 帮我看看 成心谢谢
- 怎样使用RunTime的exec(String[] cmdarray, String[] envp, File dir)???
- JDBC连接Oracle9.1一问(100分)
- 非阻塞I/O中服务器得到的SocketChannel怎样进行管理?
- 请问如何用JAVA建立一个包含字符串的结构数组并赋值?
- 谁做过无线通讯基站的服务器端管理软件
- 请高手帮我解释一下这反编译后的代码
我去掉了那些throw,就OK了。~
你这样加得自己去实现CellRender和CellEditor,然后分别处理里面的事件。
mouseClicked就可以了。第二:你说的点击没反应指的是单击、双击还是都没反应。
容器中有前述问题的,对其中控件不产生影响。看来你的首要问题是查为什么有两个Listener。
阻止咯程序的继续执行