0

を含む JFrame を持つ GameFrame クラスを構築し jmenubar、いくつかの項目をメニューに追加します。OOP の理由から、actionlistener クラス (独自に実装し、フレーム jmenubar への引数として渡す) を GameFrame から分離します。

問題は、いずれかをJmenuItems選択すると、ユーザーに URL の入力を求めるダイアログが表示されることです。しかし、このダイアログはメニュー項目が選択されたときにのみ作成されるため、次のことを避けるにはどうすればよいですか? (これはあまりOOPではありません)

@Override
public void actionPerformed(ActionEvent e) {
    JMenuItem item = (JMenuItem) e.getSource();

    if (item.getText().equals("URL")) {
        //create a dialogue 
        //get the input
        //pass it to something else
    }
}

イベント ハンドラ クラス内でのスイング コンポーネントの作成と、コンポーネント クラス内でのイベント ハンドラの作成を回避したいのですが、それを回避する方法がありません。

4

1 に答える 1