请问有人遇到过这样的问题么??有关JPopupMenu的问题 高分求助 在线等待
ggimm 2003-10-19 11:07:04 我在一个窗口上加上popupmenu后 发现不能使用上下键来移动选项
代码在下面 不信你试试 有谁能让他可以用键盘控制来选择哪一项么import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
class WinEventTry extends JFrame implements MouseListener
{
JPopupMenu popup;
DefaultSingleSelectionModel dsm;
public WinEventTry()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel();
getContentPane().add("Center", p);
setBounds(40,30,300,200);
addMouseListener(this);
show();
}
public void creatPopup(Point p)
{
popup = new JPopupMenu();
JMenuItem mi;
mi = popup.add(new JMenuItem("haha",'h'));
mi = popup.add(new JMenuItem("why",'w'));
mi = popup.add(new JMenuItem("now",'n'));
JMenu made = new JMenu("made");
made.setMnemonic('m');
mi = made.add(new JMenuItem("node",'o'));
mi = made.add(new JMenuItem ("ok",'k'));
popup.add(made);
popup.show(this,p.x,p.y);
}
public void mouseClicked(MouseEvent e)
{
if(e.isPopupTrigger())
{
creatPopup(e.getPoint());
popup.requestFocus();
}
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
if(e.isPopupTrigger())
{
creatPopup(e.getPoint());
popup.requestFocus();
}
}
public void mouseReleased(MouseEvent e)
{
if(e.isPopupTrigger())
{
creatPopup(e.getPoint());
popup.requestFocus();
}
}
public static void main(String[] args)
{
new WinEventTry();
}
}