3 回答

TA貢獻(xiàn)1839條經(jīng)驗 獲得超15個贊
您可以使用以下代碼訪問文件選擇器的默認(rèn)按鈕,然后將您自己的偵聽器添加到該按鈕:
JButton defaultButton = browser.getUI().getDefaultButton(browser);

TA貢獻(xiàn)1828條經(jīng)驗 獲得超6個贊
如前所述,一種解決方案是遞歸地遍歷 JFileBrowser 的組件,直到找到正確的組件,這里是一個帶有操作命令字符串“Open”的 JButton。
例如,此方法可能有效:
public static void recursiveComponentSearch(Component c, String actionCommand,
ActionListener listener) {
if (c instanceof JButton) {
JButton button = (JButton) c;
// TODO: delete the line below
System.out.printf("Text: \"%s\"; action command: \"%s\"%n", button.getText(),
button.getActionCommand());
if (button.getActionCommand().equalsIgnoreCase(actionCommand)) {
button.addActionListener(listener);
}
}
// recursive search here
if (c instanceof Container) {
Container container = (Container) c;
Component[] components = container.getComponents();
for (Component component : components) {
recursiveComponentSearch(component, actionCommand, listener);
}
}
}
像這樣使用:
ActionListener listener = evt -> System.out.println("Save button here");
String actionCommand = "Open";
recursiveComponentSearch(browser, actionCommand, listener);

TA貢獻(xiàn)1829條經(jīng)驗 獲得超13個贊
我才發(fā)現(xiàn)問題出在線路上browser.setSelectedFile(new File("*.extension"));
。顯然,這種方法不喜歡星號,將其替換為其他任何東西都可以解決問題。例如:browser.setSelectedFile(new File("new.extension"));
將按預(yù)期工作。
添加回答
舉報