在我的程序中,我添加了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
中获取返回值。
您必须创建一个全局变量并将返回值分配给该变量。
public static String[] response;
static class Action implements ActionListener {
public void actionPerformed(ActionEvent e) {
response = mainprog.filechooser();
}
}
按钮触发的动作是什么?
我敢打赌,它不是“ Call FileChooser”,也不是“ Choose File”。
我认为它是“附加文件”。
因此您的方法Action.actionPerformed()
将必须使用附件更新票证。这意味着它必须自己消耗filechooser()
的返回值。
“动作”模拟用户活动,而不是代码内部的活动;在这种情况下,它是“附加文件”,由以下步骤组成:“选择文件”,“加载文件”,“将文件添加到票证”。