改进 Ubuntu 12.04 (GTK) 下的 JFileChooser

2023-12-20

我有一个问题JFileChooser在 Ubuntu 12.04 下。我使用此代码来设置外观:javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());

它看起来像这样。使用起来很不舒服,而且看起来很丑:

enter image description here
(source: picfront.org http://www9.picfront.org/token/9sRH/2012/05/15/2062476.jpg)

我希望它看起来像这样:

enter image description here
(source: picfront.org http://www4.picfront.org/token/1lpa/2012/05/15/2062477.jpg)

使用此提示post https://stackoverflow.com/questions/4983575/is-there-a-way-to-improve-jfilechooser-look-and-feel-under-ubuntu,我尝试使用FileDialog而不是FileChooser. But FileDialog当我启动它时抛出异常LOAD模式并单击“打开”按钮。 我创建对话框的方式:

FileDialog fd = new FileDialog(frame, "Test", FileDialog.LOAD);
fd.setVisible(true);

例外情况:

Exception in thread "Thread-0" java.lang.NullPointerException
at sun.awt.X11.GtkFileDialogPeer.setFileInternal(GtkFileDialogPeer.java:79)
at sun.awt.X11.GtkFileDialogPeer.run(Native Method)
at sun.awt.X11.GtkFileDialogPeer.showNativeDialog(GtkFileDialogPeer.java:172)
at sun.awt.X11.GtkFileDialogPeer.access$000(GtkFileDialogPeer.java:39)
at sun.awt.X11.GtkFileDialogPeer$1.run(GtkFileDialogPeer.java:114)

我在 Ubuntu Linux 12.04 和 Gnome 3 下使用 Oracle JDK7(如果这有帮助的话)。

有谁知道我可以如何改善外观JFileChooser或得到FileDialog在职的?


我在一个 Java GUI 项目中遇到了同样的问题。我将其设置为使用“zenity”终端程序来调用 Linux/unix 系统上的本机文件选择器。请注意,此解决方案不需要导入任何额外的 Java 库(尽管您必须在 Linux 上安装 Zenity),并且在 Windows 上也可以正常工作:

private File fileSelection(boolean savemode) {
        String os = System.getProperty("os.name");
        File input = null;
        String zenity = "zenity --file-selection --title=Open";
        String filestring;
        if ((os.indexOf("nix")!=-1 || os.indexOf("nux")!=-1)) {
            //Use native Linux file selection.
            try {
                if (savemode) {
                    zenity ="zenity --file-selection --title=Save --save";
                }
                Process p = Runtime.getRuntime().exec(zenity);  
                BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));  
                StringBuffer sb = new StringBuffer();  
                String line;
                /*while ((line = br.readLine()) != null) {  
                  sb.append(line).append("\n");  
                } */
                sb.append(br.readLine());
                filestring = sb.toString();  
                if (filestring.equals("null")) {
                    return null;
                }
                System.out.println(filestring);
                input = new File(filestring);
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        } else {
            final JFileChooser fc = new JFileChooser();
            int returnVal;
            if (savemode) {
                returnVal = fc.showSaveDialog(fc);
            } else {
                returnVal = fc.showOpenDialog(fc);  
            }
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                input = fc.getSelectedFile();
            }
        }
        return input;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

改进 Ubuntu 12.04 (GTK) 下的 JFileChooser 的相关文章

随机推荐

  • 如何在 Java 中同步或锁定变量?

    让我使用这个小而简单的示例 class Sample private String msg null public void newmsg String x msg x public String getmsg String temp ms
  • 网站托管在 IIS 中时无法打开数据库

    当我从 Visual Studio 运行我的网站时 一切正常 现在我正在尝试继续并开始测试多租户部分 因此我必须将我的网站移至 IIS 由于某种原因我无法访问数据库 当我打开需要数据库访问的页面时出现的错误是 无法打开登录请求的数据库 GW
  • 文本列不能存储超过 8000 个字符

    我对此进行了研究 发现textSQL Server 中的列可以存储超过 8000 个字符 但是当我在文本列中运行以下插入时 它只插入 8000 个字符 UPDATE a SET File b Header CHAR 13 CHAR 10 d
  • 将 Leaflet 地图设置为高度:容器的 100%

    请问我们如何将地图 div 设置为其容器的 height 100 我已经在引导模板内容部分中尝试过此操作 但我得到的只是 0px 的高度 甚至 Google Dev 工具也将 map 高度显示为 0px body padding 0 mar
  • 居中 DatePicker 控件

    我正在使用 wpf 工具包中的 datepicker 控件 我需要将日期选择器控件中的内容居中对齐 我怎样才能实现这个目标 尝试VerticalContentAlignment 居中 它不起作用
  • 为什么 jsp:include 参数不可见

    我有完全相同的基本问题关于访问 jsp param 值 https stackoverflow com questions 3698068 jsp include with parameters usage simple question正
  • 获取表中列中的行

    我想从我的表中得到一个特殊的结果 并且我想知道这是可能的 我有一个像这样的表 idA idB val 按此值 idA idB val 1 5 50 1 6 0 1 7 NULL 2 5 100 2 6 12 2 7 0 我想通过这样的格式从
  • 为什么 spring 不使用我的 Converter

    我的 applicationContext xml 中有这个
  • 无法删除错误 CRUD API(NodeJS、MongoDB、Express)

    我在尝试从我正在处理的 API 项目中创建的 mongo 数据库中删除字段时遇到错误 我对 RESTful API 以及 MongoDB 和 Express 都还很陌生 我按照 YouTube 上的教程进行操作 该教程解释了制作这样一个 A
  • OpenCV CLAHE 中的剪辑限制究竟意味着什么?

    我读过很多文章说clip limit是CDF斜率的极限 但是在OpenCV中 该参数可以设置为0 999 我不知道这个参数的最大值 PDF的总和不等于1吗 斜率怎么会大于1呢 剪辑限制的另一种说法是 这是对每个灰度级计数的限制 因此例如 如
  • 如何以编程方式添加导航控制器?

    在我的应用程序中 有一个要求 我的笔尖有 6 个按钮 当我按下任何按钮时 新的笔尖将根据按下的按钮加载到窗口中 问题是加载新笔尖后如果我想返回到以前的笔尖 具有所有按钮 如何添加导航控制器 我现在正在做的是在按下按钮时加载新笔尖 objNe
  • Google Maps API:反向地理编码和地址打印

    我创建了一张包含许多不同位置的地图 每个位置都有一种标记和标题 描述 我想做的是从 lat lng 中提取相对地址 我发现这个功能 https developers google com maps documentation geocodi
  • 自定义订单详细信息页面上的 Woocommerce 自定义字段

    查看文档 似乎没有明确的方法在客户的订单详细信息页面上显示自定义字段 我可以毫无问题地将自定义字段显示在管理订单详细信息或客户的电子邮件上 我可以看到可以完成的唯一方法是复制主题文件夹中的 woocommerce order order d
  • 如何使用 Geckodriver 保留 Firefox 配置文件的缓存?

    我需要用 Selenium 保留我的缓存Geckodriver 我有一个 Firefox 配置文件 我在启动时加载它Geckodriver ProfilesIni profilesIni new ProfilesIni FirefoxPro
  • 学说 ORM 条件关联

    我正在建立一个问答网站 我的问题 答案和评论都在同一个网站上posts桌子 但他们的postType是不同的 我可以通过该协会获得问题的答案和答案的评论 OneToMany targetEntity Cms Entity Post mapp
  • AWS RDS:如何使用boto3和jmespath获取最新快照?

    这是我尝试过的 usr bin env python3 import boto3 import jmespath from datetime import datetime timedelta now datetime utcnow yes
  • 如何在python中查找当前目录中文件名与特定模式匹配的所有文件?

    我试图在与我的脚本相同的目录中查找文件名与特定模式匹配的所有文件 理想情况下 我想在获得它们后将其存储在数组中 我需要匹配的模式是这样的 testing JUNK 08 05 txt 所有文件名的前面都有测试 并以日期结尾 08 05 tx
  • Google/Facebook 注册 Azure AD B2C 后跳过验证页面

    我想禁用 跳过要求在 Google Facebook 注册后修改显示名称 名字 姓氏的验证页面 我想直接重定向到我的应用程序 我正在使用 AD B2C 自定义策略 我尝试删除 InputClaims 和 OutputClaims
  • 在 python alpine docker 中安装 python numpy 模块

    我正在尝试 dockerize 我的 python 应用程序 构建 Dockerfile 和安装依赖项时显示错误scikit learn ie numpy Dockerfile FROM python alpine3 8 RUN apk u
  • 改进 Ubuntu 12.04 (GTK) 下的 JFileChooser

    我有一个问题JFileChooser在 Ubuntu 12 04 下 我使用此代码来设置外观 javax swing UIManager setLookAndFeel javax swing UIManager getSystemLookA