2

問題は次のとおりです。jpanel(MyJPanel)のマウスの右ボタンをクリックするとトリガーが発生します。それを押すと、「プレビュー」という項目を含むポップアップメニューが表示されます。マウスの右ボタンでjpanelをクリック

「プレビュー」を押した後にJFrameを表示したいのですが、プレビュー(jmenuitem)のアクションリスナーがMyJpanelの中​​にあるため、jpanelの内容を表示する方法がわかりません。

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);
}

MyJPanel を表示するように jframe f のコンテンツを設定する方法は? (PopupTrigger は MouseAdapter を拡張し、MyJPanel の内部クラスです)

4

3 に答える 3

1

obhを作成finalし、それをJFrameに追加します。

于 2012-04-23T20:39:00.487 に答える
1

final Jpanel obhまず、JPanel final: ... をマークして、内部クラスからアクセスできるようにする必要があります 。次に、リスナー内

f.getContentPane().add(obh);
于 2012-04-23T20:37:58.113 に答える
1

jFrame.setContentPane(newcontentPanel) を試しましたか?

于 2012-04-23T20:40:27.043 に答える