谁帮一下,我的JPopupMenu怎么捕捉不到鼠标点击事件呀??
我定义了一个JPopupMenu 的对象elm,然后又定义了一个JButton,添加了事件单击按钮显示elm,对添加了事件单击elm的一个JMenuItem后显示一个Frame,运行后单击button可以显示弹出菜单,但是单击菜单就是不能显示Frame,是怎么回事呀,所有事件函数内容都是正确的代码如下:
import java.awt.Component;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;public class ExportlogMenu extends JPopupMenu { /**
*
*/
private static final long serialVersionUID = -2512149702944443669L;
public JMenuItem Item_txt = null,Item_xls = null;
public ExportlogMenu(Component c,int x,int y)
{
super("导出为");
Item_txt = new JMenuItem("导出为文本文件(*.txt)");
Item_xls = new JMenuItem("导出为Excel表(*.xls)");
this.add(Item_txt);
this.add(Item_xls);
this.show(c, x, y);
}
}
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JButton;
public class w_logview extends JFrame{
public w_logview()
{ public JButton btn = new JButton("test");
btn.addMouseListener(cz);
MouseListener cz = new MouseListener(){
if(e.getSource() == btn_explog)
{
showPopupMenu(btn_explog,e.getX(),e.getY());
//setFileSavePos();
}
} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {}
}
}; public void showPopupMenu(Component t,int x,int y)
{
elm = new ExportlogMenu(t,x,y);
// setFileSavePos();
elm.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) {
// TODO 自动生成方法存根
if(e.getSource()== elm.Item_txt){ //???问题就是这个消息捉不到
setFileSavePos(); ///已定义的函数,经测试是正确的
}
} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {}
});
}
}希望大家帮一下我!
我定义了一个JPopupMenu 的对象elm,然后又定义了一个JButton,添加了事件单击按钮显示elm,对添加了事件单击elm的一个JMenuItem后显示一个Frame,运行后单击button可以显示弹出菜单,但是单击菜单就是不能显示Frame,是怎么回事呀,所有事件函数内容都是正确的代码如下:
import java.awt.Component;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;public class ExportlogMenu extends JPopupMenu { /**
*
*/
private static final long serialVersionUID = -2512149702944443669L;
public JMenuItem Item_txt = null,Item_xls = null;
public ExportlogMenu(Component c,int x,int y)
{
super("导出为");
Item_txt = new JMenuItem("导出为文本文件(*.txt)");
Item_xls = new JMenuItem("导出为Excel表(*.xls)");
this.add(Item_txt);
this.add(Item_xls);
this.show(c, x, y);
}
}
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JButton;
public class w_logview extends JFrame{
public w_logview()
{ public JButton btn = new JButton("test");
btn.addMouseListener(cz);
MouseListener cz = new MouseListener(){
if(e.getSource() == btn_explog)
{
showPopupMenu(btn_explog,e.getX(),e.getY());
//setFileSavePos();
}
} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {}
}
}; public void showPopupMenu(Component t,int x,int y)
{
elm = new ExportlogMenu(t,x,y);
// setFileSavePos();
elm.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) {
// TODO 自动生成方法存根
if(e.getSource()== elm.Item_txt){ //???问题就是这个消息捉不到
setFileSavePos(); ///已定义的函数,经测试是正确的
}
} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {}
});
}
}希望大家帮一下我!
{
public void actionPerformed(ActionEvent e) {
//;
}
});