JPopupMenu弹出后不消失了
代码很简答,为什么pMenu弹出后不能消失,除非关闭程序,有什么办法在pMenu以外的任何地方点击鼠标都消失呢
private JPopupMenu pMenu;弹出菜单?消失 java 弹出菜单
private JMenuItem mSelectAll;
private JMenuItem mCopy;
private JMenuItem mCut;
private JMenuItem mSelectAll;
private JMenuItem mCopy;
private JMenuItem mCut;
mSelectAll.addMouseMotionListener(this);
mCopy.addMouseMotionListener(this);
mCut.addMouseMotionListener(this);
mSelectAll.addActionListener(this);
mCopy.addActionListener(this);
mCut.addActionListener(this);
pMenu.add(mSelectAll);
pMenu.add(mCopy);
pMenu.add(mCut);
pMenu.setLocation(p);
pMenu.setVisible(true);
pMenu.requestFocus();
[解决办法]
请上传完整的可以运行的类代码,这样有更多的C友可以帮你
[解决办法]
import java.awt.BorderLayout;
import java.awt.TextField;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
* http://bbs.csdn.net/topics/390340915
*
* @author ceclinux
*
*/
public class MouseExitExample extends JFrame {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new MouseExitExample();
}
public MouseExitExample() {
setVisible(true);
setSize(300,300);
JButton jb=new JButton("dfsafs");
jb.setSize(200,200);
add(jb,BorderLayout.EAST);
final JTextField tf = new JTextField();
tf.setSize(200,200);
tf.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("a");
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
});
add(tf);
}
}
如果没理解错的话,重写MouseListener的mouseExit方法即可,示例如上