在JFrame中显示JPanel的内容

问题描述:

问题是: 我的触发器右键点击我的jpanel。(MyJPanel)。当我按下它时,会显示项目为“预览”的弹出式菜单。 right mouse button click on jpanel在JFrame中显示JPanel的内容

我想在按下“预览”后显示JFrame,但我不知道如何显示jpanel的内容,因为预览(jmenuitem)的actionlistener位于MyJpanel内部。

public MyJPanel(String s,int i){ 
    addMouseListener(new PopupTrigger()); 
    JPanel obh = new JPanel(); 
    number = i; 
    picture = new ImageIcon(s); 
    preview = new JMenuItem("Preview"); 
    preview.addActionListener(
      new ActionListener() { 
       @Override 
       public void actionPerformed(ActionEvent e) { 
        JFrame f = new JFrame("Preview window"); 
        f.setSize(csizeX/2,csizeY/2); 

        f.setVisible(true); 
       } 
      } 
    ); 
    menu.add(preview); 
} 

如何设置JFrame中的F内容显示MyJPanel(popupTrigger属扩展MouseAdapter,它的内部类MyJPanel的)

+0

'picture = new ImageIcon(s);'Presumes's'是一个文件路径。该图像是嵌入式应用程序资源,还是由用户提供?为了更快地获得更好的帮助,请发布[SSCCE](http://sscce.org/)。 – 2012-04-23 21:31:30

+0

我从'File f = fileChooser.getSelectedFile()''f.getAbsolutePath'获取's' – 2012-04-23 22:32:44

首先,你需要标记的JPanel决赛:? final Jpanel obh ... 成为入店来自内心阶层。 然后,在监听器里

f.getContentPane().add(obh); 
+0

记得检查javadoc api:http://docs.oracle.com/javase/1.4.2/docs/api/ javax/swing/JFrame.html – 2012-04-23 20:39:58

+0

它不显示图片在这种情况下 – 2012-04-23 20:46:26

让OBH final然后将其添加到JFrame。

你试过jFrame.setContentPane(newcontentPanel)吗?