问题是: 我的 jpanel.(MyJPanel) 的鼠标右键单击已触发。当我按下它时,它会显示带有“预览”项目的弹出菜单。
我想在按“预览”后显示 JFrame,但我不知道如何显示 jpanel 的内容,因为预览(jmenuitem)的 Action 监听器位于 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的内部类)
最佳答案
首先您需要将 JPanel 标记为 Final:
最终 Jpanel obh
...
可以从内部类访问。
然后,在监听器内部
f.getContentPane().add(obh);
关于java - 在 JFrame 中显示 JPanel 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10287825/