2012-04-23 3 views
2

Проблема в следующем: У меня есть триггер правой кнопкой мыши для моего jpanel. (MyJPanel). Когда я его нажимаю, он показывает всплывающее меню с пунктом «Предварительный просмотр». right mouse button click on jpanelпоказать содержимое JPanel в JFrame

Я хочу показать JFrame после нажатия «Предварительный просмотр», но я не знаю, как показать содержимое jpanel, потому что actionlistener предварительного просмотра (jmenuitem) находится внутри 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/). –

+0

Я получаю 's' из' File f = fileChooser.getSelectedFile() '' f.getAbsolutePath' –

ответ

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 –

+0

в этом случае не отображается изображение –

1

Сделать ОВН final, а затем добавить его в JFrame.