import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test1{
public static void main(String args[]){
MyFrame myFrame = new MyFrame();
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setVisible(true);
}
}
class MyFrame extends JFrame{
public MyFrame(){
setTitle("PopupMenuTest");
setSize(300,300);
setLocation(600,300);
JPopupMenu popup = new JPopupMenu();
JMenuItem item1 = new JMenuItem("Copy");
JMenuItem item2 = new JMenuItem("Cut");
popup.add(item1);
popup.add(item2);
popup.show(getContentPane(),50,50);//这里设置了咋没用呢?
}
}帮解释下,感谢!

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Test{
    public static void main(String args[]){
    MyFrame myFrame = new MyFrame();
    myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    myFrame.setVisible(true);// myFrame是在调用这句以后才显示在屏幕上
    JPopupMenu popup = new JPopupMenu();
    JMenuItem item1 = new JMenuItem("Copy");
    JMenuItem item2 = new JMenuItem("Cut");
    popup.add(item1);
    popup.add(item2);
    // 弹出菜单必须出现在已经显示的组件上,写在MyFrame构造方法里面,调用时myFrame还没有显示
    popup.show(myFrame.getContentPane(),50,50);
    }
    }
    class MyFrame extends JFrame{
    public MyFrame(){
    setTitle("PopupMenuTest");
    setSize(300,300);
    setLocation(600,300);
    // 在此处调用时,MyFrame对象不可见
    }
    }