gpt4 book ai didi

java - 嵌入 JFileChooser

转载 作者:太空宇宙 更新时间:2023-11-04 09:27:22 26 4
gpt4 key购买 nike

我正在尝试添加一个JFileChooser,它选择父目录并允许用户输入文件名称。我知道 showSaveDialogshowOpenDialog 方法,但我不想创建新窗口。

这是我到目前为止所拥有的:

public class BrowserTest extends JFrame {

private JPanel contentPane;

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
BrowserTest frame = new BrowserTest();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public BrowserTest() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JFileChooser browser = new JFileChooser();
browser.setFileFilter(new FileFilter() {
@Override
public String getDescription() {
return "A .extension file";
}
@Override
public boolean accept(File f) {
return f.isDirectory();
}
});
browser.setDialogType(JFileChooser.SAVE_DIALOG);
browser.setSelectedFile(new File("*.extension"));
browser.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
final String action = e.getActionCommand();
if(action.equals(JFileChooser.APPROVE_SELECTION)) {
System.out.println("trigger");
File f = browser.getCurrentDirectory();
System.out.println(f);
}
if(action.equals(JFileChooser.CANCEL_SELECTION))
JOptionPane.showConfirmDialog(null, "Start without saving?", "No save directory selected.", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
}
});
contentPane.add(browser);
revalidate();
}
}

由于某种原因,如果我选择一个文件,按下保存按钮只会执行System.out.println("trigger");。有没有办法直接监听保存按钮的按下?

最佳答案

您可以使用以下代码访问文件选择器的默认按钮,然后将您自己的监听器添加到该按钮:

JButton defaultButton = browser.getUI().getDefaultButton(browser);

关于java - 嵌入 JFileChooser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57514452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com