【问题标题】:JFileChooser change text from menu buttonsJFileChooser 从菜单按钮更改文本
【发布时间】:2019-08-18 14:16:06
【问题描述】:

我想更改“查看菜单”菜单下的“列表”按钮文本,但找不到方法。这是文件选择器窗口的图片。

JFileChooser dialog window

我试过这些,但没有用:

UIManager.put("FileChooser.listViewButtonText", "Test1");
UIManager.put("FileChooser.listViewButtonName", "Test2");
UIManager.put("FileChooser.listButtonText", "Test3");
UIManager.put("FileChooser.listViewButtonAccessibleName", "Test4");
chooser.updateUI();

有人遇到过这个吗?另外,如果可能的话,我也想更改右键菜单文本。

提前谢谢你。

【问题讨论】:

    标签: java swing jfilechooser uimanager


    【解决方案1】:

    这些是必须更改的值:

    UIManager.put("FileChooser.detailsViewActionLabelText", "mytext");
    UIManager.put("FileChooser.listViewActionLabelText", "myothertext");
    

    您可以在installDefaults方法中看到sun.swing.FilePane类中安装的值:

    protected void installDefaults() {
        Locale l = getFileChooser().getLocale();
    
        listViewBorder = UIManager.getBorder("FileChooser.listViewBorder");
        listViewBackground = UIManager.getColor("FileChooser.listViewBackground");
        listViewWindowsStyle = UIManager.getBoolean("FileChooser.listViewWindowsStyle");
        readOnly = UIManager.getBoolean("FileChooser.readOnly");
    
        // TODO: On windows, get the following localized strings from the OS
    
        viewMenuLabelText = UIManager.getString("FileChooser.viewMenuLabelText", l);
        refreshActionLabelText = UIManager.getString("FileChooser.refreshActionLabelText", l);
        newFolderActionLabelText = UIManager.getString("FileChooser.newFolderActionLabelText", l);
    
        viewTypeActionNames = new String[VIEWTYPE_COUNT];
        viewTypeActionNames[VIEWTYPE_LIST] = UIManager.getString("FileChooser.listViewActionLabelText", l);
        viewTypeActionNames[VIEWTYPE_DETAILS] = UIManager.getString("FileChooser.detailsViewActionLabelText", l);
    
        kiloByteString = UIManager.getString("FileChooser.fileSizeKiloBytes", l);
        megaByteString = UIManager.getString("FileChooser.fileSizeMegaBytes", l);
        gigaByteString = UIManager.getString("FileChooser.fileSizeGigaBytes", l);
        fullRowSelection = UIManager.getBoolean("FileView.fullRowSelection");
    
        renameErrorTitleText = UIManager.getString("FileChooser.renameErrorTitleText", l);
        renameErrorText = UIManager.getString("FileChooser.renameErrorText", l);
        renameErrorFileExistsText = UIManager.getString("FileChooser.renameErrorFileExistsText", l);
    }
    

    【讨论】:

    • 谢谢!那是正确的方法!你还知道如何在使用鼠标(右键单击)时更改菜单标签吗?
    • 虽然我只需要 3 行代码,但您提供的代码可以根据本地语言自动生成。不过谢谢你,因为这是我问的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多