Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaSwing中为按钮使用操作系统自己的图标_Java_Swing_Icons_Jbutton - Fatal编程技术网

在JavaSwing中为按钮使用操作系统自己的图标

在JavaSwing中为按钮使用操作系统自己的图标,java,swing,icons,jbutton,Java,Swing,Icons,Jbutton,我目前正在构建一个文件管理器,就像mac os own Finder一样。 对于每个按钮的图标,我更喜欢使用mac os自己的图标,而不是从互联网下载。我见过,也见过。 但问题是,当调用大多数图标时,所有帧显示都是Finder图标。 例如,对于此代码: import javax.swing.*; public class GUI { public GUI() { JFrame mainFrame = new JFrame(); mainFrame.setS

我目前正在构建一个文件管理器,就像mac os own Finder一样。 对于每个按钮的图标,我更喜欢使用mac os自己的图标,而不是从互联网下载。我见过,也见过。 但问题是,当调用大多数图标时,所有帧显示都是Finder图标。 例如,对于此代码:

import javax.swing.*;
public class GUI {
    public GUI() {
        JFrame mainFrame = new JFrame();
        mainFrame.setSize(600, 600);
        JButton button = new JButton(UIManager.getIcon("FileChooser.listViewIcon"));
        mainFrame.add(button);
        mainFrame.setVisible(true);

    }
}
这表明: 有没有办法获取系统默认图标或修复此问题


我还试着从互联网上下载图像图标,比如这个。但是当把它作为Jbutton的图标时,它的大小不合适,而且模糊。有没有办法把它调整到完美的尺寸

你确定要这么做?可移植性是Java的重要组成部分,这意味着无论平台如何,代码的外观和运行都应该是相同的(只是外观上有一些细微的差异)。当有人在Windows计算机上运行您的代码时会发生什么?你会给那些用户他们习惯看到的图标吗?是的,我肯定。问题是我不是在制造产品或类似的东西,这只是一个学习项目。我想在我自己的笔记本电脑上制作出尽可能漂亮的:D@MarsAtomic无论平台是什么,代码的外观和运行都应该是相同的——如果应用程序使用的是“平台LAF”,则不应如此。是的,它应该运行相同的,但LAF应该基于平台,这就是为什么您会尝试使用平台的图标。@Danialz,我不使用Mac,所以我不知道正确的图标应该是什么。可能问题是您试图在设置LAF之前获取图标,并且您没有在事件调度线程(EDT)上执行代码。退房查看它显示为Mac LAF图标的内容。