如何重命名Filechooser中的按钮,例如从打开到保存
saveAsButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
JFileChooser chooser = new JFileChooser();
int returnVal = chooser.showOpenDialog(null);
try(FileWriter fw = new FileWriter(chooser.getSelectedFile()+".txt")) {
fw.write(textPane1.getText().toString());
fw.flush();
fw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
使用JFileChooser#showSaveDialog
而不是JFileChooser#showOpenDialog
我建议您查看How to Use File Choosers和JavaDocs了解更多详情
当然,如果你想要更多地控制按钮文本,那么你应该看看JFileChooser#setApproveButtonText
及其相关方法
如果调用showOpenDialog或showSaveDialog,则批准按钮文本重置为默认值
你知道,这很有趣,我多年来一直在使用这种方法,它似乎一直在工作。
我挖了JFileChooser
代码,发现showOpen/SaveDialog
称之为......
public void setDialogType(int dialogType) {
if(this.dialogType == dialogType) {
return;
}
checkDialogType(dialogType);
int oldValue = this.dialogType;
this.dialogType = dialogType;
if(dialogType == OPEN_DIALOG || dialogType == SAVE_DIALOG) {
setApproveButtonText(null);
}
firePropertyChange(DIALOG_TYPE_CHANGED_PROPERTY, oldValue, dialogType);
}
这“应该”重置批准按钮文本,但出于某种原因,在我的测试中,qazxsw poi工作,让我们说话很奇怪......
showOpenDialog
那么,解决方案是什么?那么,你可以使用public class CustomFileChooser extends JFileChooser {
@Override
public void setDialogType(int dialogType) {
String currentApproveText = getApproveButtonText();
super.setDialogType(dialogType);
setApproveButtonText(currentApproveText);
}
}
,它将它设置为showDialog
,但我会为此懒惰:P
另一个解决方案可能是简单地覆盖CUSTOM_DIALOG
并重新应用setDialogType
,类似......
approveButtonText