最近我不得不在我的一个项目中使用filechooser。我用8个按钮做了一个框架,每个按钮打开一个文件回放器来设置一些字符串。
按钮的名称来自“RA1” - “RA8”。
所以这就是我所拥有的:
FileChooser方法:
public File openDataBrowser() {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setCurrentDirectory(new File(System.getProperty("user.home")));
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int result = fileChooser.showOpenDialog(fileChooser);
if (result == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
return selectedFile;
}
return new File("");
}
的ActionListener:
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(RA1)) path1 = openDataBrowser().getAbsolutePath().replace("\\", "/");
else if (e.getSource().equals(RA2)) path2 = openDataBrowser().getAbsolutePath().replace("\\", "/");
else if (e.getSource().equals(RA3)) path3 = openDataBrowser().getAbsolutePath().replace("\\", "/");
else if (e.getSource().equals(RA4)) path4 = openDataBrowser().getAbsolutePath().replace("\\", "/");
else if (e.getSource().equals(RA5)) path5 = openDataBrowser().getAbsolutePath().replace("\\", "/");
else if (e.getSource().equals(RA6)) path6 = openDataBrowser().getAbsolutePath().replace("\\", "/");
else if (e.getSource().equals(RA7)) path7 = openDataBrowser().getAbsolutePath().replace("\\", "/");
else if (e.getSource().equals(RA8)) path8 = openDataBrowser().getAbsolutePath().replace("\\", "/");
else if (e.getSource().equals(finish)) {
System.out.println(path1);
}
}
所以首先我要选择文件,然后我希望将数据发送到另一个类,为了测试目的,我只想打印路径,但它不会真正起作用。当点击其中一个按钮时,会弹出filechooser,但点击“打开”后它会弹出另一个按钮。
这种情况发生了8次,之后,当我按下“完成”按钮时,我得到一个这样的输出:
C:/Users/edv.BORBET/Desktop/Roentgen Auswertung neu/RA8
C:/Users/edv.BORBET/Desktop/Roentgen Auswertung neu/RA8
C:/Users/edv.BORBET/Desktop/Roentgen Auswertung neu/RA8
C:/Users/edv.BORBET/Desktop/Roentgen Auswertung neu/RA8
C:/Users/edv.BORBET/Desktop/Roentgen Auswertung neu/RA8
C:/Users/edv.BORBET/Desktop/Roentgen Auswertung neu/RA8
C:/Users/edv.BORBET/Desktop/Roentgen Auswertung neu/RA8
C:/Users/edv.BORBET/Desktop/Roentgen Auswertung neu/RA8
我的文件夹的名称来自“RA1” - “RA8”。
我选择“RA8”作为最后一个文件夹。 现在问我的问题:
感谢您的帮助!
答案 0 :(得分:1)
这可能会对您有所帮助:
我让一个ActionListener
调用方法doSomething()
,调用JButton
作为参数
ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent e) {
doSomething((JButton)e.getSource());
}
};
ActionListener
将添加到所有JButtons
。
RA1.addActionListener(al);
RA2.addActionListener(al);
...
RA8.addActionListener(al);
finish.addActionListener(al);
doSomething()
看起来像这样(缩短为3个按钮以保持干净):
protected void doSomething(JButton src) {
if (src.equals(RA1)) path1 = openDataBrowser().getAbsolutePath().replace("\\", "/");
else if (src.equals(RA2)) path2 = openDataBrowser().getAbsolutePath().replace("\\", "/");
else if (src.equals(RA3)) path3 = openDataBrowser().getAbsolutePath().replace("\\", "/");
else if (src.equals(finish)) {
System.out.println(path1);
System.out.println(path2);
System.out.println(path3);
}
}