当前位置: 首页 > 知识库问答 >
问题:

如何在JFrame中更改java图标

仲孙疏珂
2023-03-14

好的,所以我一直在安静地研究这个。我对java相当陌生,但认为这个会很容易。我尝试了几乎所有在这个网站上得到答案的方法,但仍然没有运气,通常当我看这里的时候,我能够找到一个符合我所寻找的答案。有人知道如何更改JFrame顶角的Java图标吗?我很确定这也不是我的文件路径,因为我所有的图像都在同一个文件夹中,它们都可以工作,这是我唯一无法工作的。

这是我的程序主菜单的第一部分代码,除了尝试添加图标图像外,其他一切都正常。我在下面输入的代码中没有JFrame图标的任何内容,我删除了它,因为它不起作用。因此,如果有人知道如何使用这段代码,我们将不胜感激,非常感谢您的高级!

public class MainFrame
{
private MyPanel main;
private MyPanel2 create;
private MyPanel3 update;
private MyPanel4 find;
JFrame frame = new JFrame("Main Menu:");

public void displayGUI()
{
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel contentPane = new JPanel();
    contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    contentPane.setLayout(new CardLayout());
    main = new MyPanel(contentPane, this);
    create = new MyPanel2(contentPane);
    update = new MyPanel3(contentPane);
    find = new MyPanel4(contentPane);
    contentPane.add(main, "Main Menu");
    contentPane.add(create, "Create Part");
    contentPane.add(update, "Update Part");
    contentPane.add(find, "Find Part");
    frame.setLocation(200, 200);
    frame.setSize(700, 580);
    frame.setContentPane(contentPane);

    frame.setVisible(true);

}

共有3个答案

严俊友
2023-03-14

这对我来说非常好。只需在创建JFrame后添加它。

try {
   Image image = new ImageIcon("/icons/image.jpg").getImage();
   frame.setIconImage(image);
}catch(Exception e){
   System.out.println("Application icon not found");
}
易琛
2023-03-14

例如,在一个NetBeans项目中,在src文件夹中创建一个resources文件夹。

把你的图片(jpg,…)在里面。

无论您使用的是ImageIO还是Toolkit(包括getResource),都必须在图像文件的路径中包含一个前导/

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/resources/agfa_icon.jpg"));
setIconImage(image);

如果此代码位于JFrame类中,则图像将作为标题栏中的图标添加到框架中。

司徒志强
2023-03-14

我有个答案给你。首先,确保图像位于文件夹中,而不是包中。接下来,插入这行代码:

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("path/to/image.png"));
ImageIcon icon = new ImageIcon( );
setIconImage(icon.getImage());

这段代码从类路径获取图像,并将其作为图像图标返回,然后对其进行设置。这会将图像图标添加到应用程序中。如果没有,那就告诉我。

编辑:在你告诉我那不管用之后,我决定再次尝试一下。。。首先,把你的图片放到一个完全独立的文件夹中。我通常称之为/res。下一步,把你的图像放在那里。现在,为了装货,我选择了完全不同的路线。我决定使用ImageIO而不是默认加载。要加载图像,请使用以下代码:

try {
    frame.setIconImage(ImageIO.read(new File("res/icon.png")));
}
catch (IOException exc) {
    exc.printStackTrace();
}

ImageIO在加载图像时效果更好。如果这仍然不起作用,请告诉我。

如果您想将其导出为JAR,那么将一个与您在程序中使用的名称相同的文件夹放在与JAR相同的目录中。

 类似资料:
  • 问题内容: 好的,所以我一直在研究这一点。我对Java还是很陌生,但认为这很容易。我已经尝试了本网站上已回答的所有方法,但仍然没有运气,通常,当我在这里查看时,我能够找到适合我所寻找答案的答案。有谁知道如何更改JFrame右上角的Java图标。我非常肯定它不是我的文件路径,因为我的所有图像都在同一个文件夹中并且都可以工作,这是我似乎无法使用的唯一文件。 这是我的程序主菜单代码的第一部分,除我尝试添

  • 我看了其他答案,试着: 以及: 在类中,我把图像文件放在资源文件夹中,也放在与我的文件和我项目的根文件夹中,甚至在开始时包含了/符号URL字符串,但没有工作。我想知道最近有没有人尝试过并成功了?

  • 问题内容: 简而言之,有一个简单的java swing应用程序,其中包含JFrame和其中的某些组件。组件之一是一个JPanel,可以根据用户操作将其替换为另一个JPanel。 那么,做这种事情的正确方法是什么?我试过了 但这行不通。你有什么建议? 问题答案: 你的用例对于CardLayout来说似乎很完美。 在卡片布局中,你可以在同一位置添加多个面板,但是一次只能显示或隐藏一个面板。

  • 问题内容: 我有一个图表,其中x轴显示时间,y轴显示我的数据。我想通过为x轴选择不同的指标来更改比例。例如 秒,分钟和小时刻度。默认值为秒。因此,如果选择分钟,则图表应该更小且更弯曲。任何的想法?UI 尚未完成,但是您假设将有x和y轴。的参数度确定其应被缩放到第二(度= 1),分钟(度= 60)或小时(度= 3600) 问题答案: 考虑使用jfreechart,它将缩放图形以填充封闭的容器。中看到

  • 问题内容: 我正在使用以下代码, 用于更改JFrame中的工具栏颜色。但这没有用。 是否可以在JFrame中更改标题栏的颜色? 问题答案: 这是不可能的。顶级JFrame由底层OS的外观控制。 您可以更改的颜色。

  • 我正在使用swing,我无法在WindowBuilder中更改组件区域中的JFrame。我只能看到主框架。当我按下一个按钮时,我会创建一个新的框架,但我不能用WindowBuilder编辑它。