0

親愛なる友人、私は を含むメイン アプリケーションを持ってMenuおり、それぞれにMenuがありJMenuItemます。いずれかをクリックすると、特定のタスクを実行JMenuItemする を開くことができnew JFrameます。これは、 Main Method を含む同じクラスではなく、JFrame実装する別のクラスにある必要があります。同じクラス内またはそれを実装する内部クラスとして同じメソッドを試すと、2つの異なるクラスとは異なります。私がそのようにそれを必要とする理由は、それぞれにたくさんある からですActionListenerActionListenerJMenuItemsMenuJMenuItem大量のプロセスを処理します。すべてを 1 つのファイルに入れるとしたら、それはもはやオブジェクト指向プログラミングではなく、非常に長いファイルになります。以下に例を示します。ただし、次の例はうまくいきませんでした。誰かが私が間違っていることを指摘できますか。少し早いですがお礼を。

main メソッドを実装するメイン クラス。

public class SwendaEye{

    public static void main(String[]args){  
    FrameandComp frame = new FrameandComp();
    JFrame win;

    win = frame.mainFrame();
    JMenuBar bar;
    bar = new JMenuBar();
    win.setJMenuBar(bar); 

    JMenu swenda = new JMenu("SWENDAEYE");// adding Swenda menu to the bar.
    bar.add(swenda);

                 JMenuItem open = new JMenuItem("Open");
                 swenda.add(open);
                 JMenuItem exit = new JMenuItem("Exit");
                 swenda.add(exit);

    JMenu tools = new JMenu("Tools");// adding Tools menu to the bar.
    bar.add(tools);
                 JMenuItem convertIP = new JMenuItem("Convert IP Address");
                 tools.add(convertIP);
                 JMenuItem convertDomain = new JMenuItem("Convert Domain Name");
                 tools.add(convertDomain);
                 convertDomain.addActionListener(new Domain());

      win.setVisible(true);
    }
}

これは、上記のクラスとは別のアクション リスナー クラスです。

public class Domain implements ActionListener{

    public void actionPerformed(ActionEvent e)
    {
        if("Convert Domain Name".equals(e.getActionCommand())){

            JFrame awindow = new JFrame();
            awindow.setSize(200,400);
            awindow.getContentPane().setBackground(Color.DARK_GRAY);
            awindow.setTitle("Convert");
            awindow.setDefaultCloseOperation(1);

        }

    }

}

この例では、 Convert Domain Name のみを示していJMenuItemます。答える前に、私に言わないでくださいJOptionPane。テーブル、画像など、このウィンドウで基本的に多くのことを行う必要があるからです。もう一度感謝します。

4

1 に答える 1

3

見えるように設定する必要がありaWindowます。

于 2013-03-21T20:04:14.253 に答える