如何重命名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();
}
}
});
答案 0 :(得分:3)
使用JFileChooser#showSaveDialog
代替JFileChooser#showOpenDialog
我建议您查看How to Use File Choosers和JavaDocs了解更多详情
当然,如果您想要更多地控制按钮文字,那么您应该查看JFileChooser#setApproveButtonText
及其相关方法
如果调用showOpenDialog或showSaveDialog,approveButtonText将重置为默认值
你知道,这很有趣,我多年来一直在使用这种方法,而且它似乎一直有效。
我挖掘了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);
}
这"应该"重置批准按钮文本,但出于某种原因,在我的测试中,showOpenDialog
工作,让我们说话很奇怪......
public class CustomFileChooser extends JFileChooser {
@Override
public void setDialogType(int dialogType) {
String currentApproveText = getApproveButtonText();
super.setDialogType(dialogType);
setApproveButtonText(currentApproveText);
}
}
那么,解决方案是什么?好吧,您可以使用showDialog
代替,CUSTOM_DIALOG
将其设置为setDialogType
,但我对此很懒:P
另一种解决方案可能是简单地覆盖approveButtonText
并重新应用public class CustomFileChooser extends JFileChooser {
@Override
public void setDialogType(int dialogType) {
String currentApproveText = getApproveButtonText();
super.setDialogType(dialogType);
setApproveButtonText(currentApproveText);
}
}
,例如......
List<String[]>