2012-04-23 164 views
2

問題是: 我的觸發器右鍵點擊我的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

回答

1

首先,你需要標記的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

1

讓OBH final然後將其添加到JFrame。

1

你試過jFrame.setContentPane(newcontentPanel)嗎?