1

ボタンをクリックするたびにメソッドの呼び出しクラスに値(文字列など)を返すことができるボタン「生成」を含むメソッドを作成しようとしています。私はこのようにしようとしました:

//start methode in "Generator" Class
public String start()
{
 String format = new String("");

        this.generateBtn.addActionListener(new ActionListener()
    {
        public String actionPerformed(ActionEvent arg0)
        {  
            //after doing operations on "format" string

                    return format;
        }

    });

そして、この方法で別のクラスから start メソッドを呼び出しました:

Generator genDialog =new Generator();
String format = genDialog.start();

Generator Class でこのエラーが発生しました:

戻り型は ActionListener.actionPerformed(ActionEvent) と互換性がありません

どうすればやりたいことを達成できますか? 内部のボタンをクリックしたときに呼び出したクラスの値を取得する必要があります。

4

2 に答える 2

2

Generator クラスはダイアログのようです。モーダル ダイアログの場合、ダイアログが非表示になるまで setVisible(true) メソッドはブロックされます。したがって、generateBtn アクション リスナーがすべきことは、生成された文字列をメンバー変数に格納してから、setVisible(false) を呼び出すことです。次に、start メソッドが呼び出し setVisible(true) を設定し、値を返します。

このようになります。

 public class Generator  extends JDialog {
    private String format;
    private JButton generateBtn;

    public Generator () {
        setModal(true);
        generateBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // create format string
                setVisible(false);
            }
         });
    }

    public String start() {
        setVisible(true);
        return format;
    }
 }
于 2013-08-20T17:18:06.807 に答える