我正在尝试从JTabbedPane内部的JFileChooser加载文件。我希望在单击“打开”按钮时加载该文件,并在另一个窗格中显示该文件。我希望我解释自己好。我有一个ActionListener,并尝试了一些东西,但似乎我使用的代码没有触发,因为它甚至不会打印到控制台。你能不能看看我的代码,看看我哪里出错了。感谢
class listener implements ActionListener{
public void actionPerformed (ActionEvent e)
{.......// other actions
else if (e.getSource() instanceof JFileChooser){
JFileChooser openFile = (JFileChooser)e.getSource();
String command = e.getActionCommand();
if (command.equals(JFileChooser.APPROVE_SELECTION)){
File selectedFile = openFile.getSelectedFile();
System.out.print("test if working");
tp.setSelectedIndex(0); //Index of JTab I wand file to load
loadSavedGame(selectedFile);
}
else if (resume.equals(JFileChooser.CANCEL_OPTION)) {
//frame.setVisible(true);
tp.setSelectedIndex(0);
}
}
}
}
答案 0 :(得分:2)
JFileChooser类有一个addActionListener(...)
方法,可以接受上面的ActionListener。它不必显示为弹出工作。
您永远不会告诉我们您是否或如何将上面的ActionListener添加到JFileChooser,但如果您实际上这样做并且您的代码仍无法正常工作,那么您将需要创建并发布{{3我们来测试和修复。
修改强>
另外,我会创建仅与JFileChooser一起使用的ActionListener,从而摆脱这一行:
else if (e.getSource() instanceof JFileChooser){
如果只将侦听器添加到一个对象,则无需测试源。