从ActionListener调用的方法中获取返回值

问题描述 投票:0回答:2

在我的程序中,我添加了JFileChooser以选择附件:

public static String[] filechooser() {
    JFileChooser fileChooser = new JFileChooser();
    fileChooser.showOpenDialog(null);
    File selectedFile = fileChooser.getSelectedFile();
    String[] fileinfo = { selectedFile.getName(), selectedFile.getPath() };

    return fileinfo;
}

现在,我希望按按钮调用的方法类似于:

 static class Action implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        mainprog.filechooser();
    }
}

我知道我如何分配一个按钮来通过触发mainprog.filechooser()来执行ActionListener,但是actionPerformed方法并不意味着返回任何内容。不幸的是,我稍后需要在程序中使用FileChooser方法的返回值。

是否有更好的方法将按钮分配给方法,是否有某种方法可以返回某些内容,或者有很好的方法可以从ActionListener中获取返回值。

java swing button actionlistener
2个回答
0
投票

您必须创建一个全局变量并将返回值分配给该变量。

public static String[] response;

static class Action implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        response = mainprog.filechooser();
    }
}

0
投票

按钮触发的动作是什么?

我敢打赌,它不是“ Call FileChooser”,也不是“ Choose File”。

我认为它是“附加文件”。

因此您的方法Action.actionPerformed()将必须使用附件更新票证。这意味着它必须自己消耗filechooser()的返回值。

“动作”模拟用户活动,而不是代码内部的活动;在这种情况下,它是“附加文件”,由以下步骤组成:“选择文件”,“加载文件”,“将文件添加到票证”。

© www.soinside.com 2019 - 2024. All rights reserved.