我正在使用JFileChooser
,我按下关闭按钮后不想关闭。问题是,在我按下关闭按钮后,它再次打开3次以上,最后关闭。
我的代码:
javaButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("Save");
int option = fileChooser.showSaveDialog(null);
if (option == JFileChooser.APPROVE_OPTION) {
String filename = fileChooser.getFileFilter().getDescription();
try {
ChartUtilities.saveChartAsPNG(new File(filename), chart, getWidth(), getHeight());
} catch (java.io.IOException exc) {
System.err.println("Error writing image to file");
}
}
if (option == JFileChooser.CANCEL_OPTION) {
System.out.println("Task canceled!");
//tried: fileChooser.setVisible(false); // >> same problem
}
}
});
有什么建议吗?
答案 0 :(得分:2)
如果选择有效,您在JFileChooser
中选择的任何选项都会关闭对话框。
但请注意,if (option == JFileChooser.CANCEL_OPTION)
下的代码永远不会执行,因为您已经在评估option == JFileChooser.APPROVE_OPTION
到true
的分支内。
答案 1 :(得分:0)
我的建议是指定JFileChooser的父级而不是将其设置为null。那个对话的父母是什么?它是JFrame吗?
看看这个简单的例子,我相信它会对你有用。
http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html
答案 2 :(得分:0)
试试这个:
javaButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("Save");
int option = fileChooser.showSaveDialog(null);
if (option == JFileChooser.APPROVE_OPTION) {
String filename = fileChooser.getFileFilter().getDescription();
try {
ChartUtilities.saveChartAsPNG(new File(filename), chart, getWidth(), getHeight());
} catch (java.io.IOException exc) {
System.err.println("Error writing image to file"); }
} // here.
if (option == JFileChooser.CANCEL_OPTION) {
System.out.println("Task canceled!");
}
}}); // one more }