当前位置: 首页 > 面试题库 >

如何在JFrame中更改Java图标

缪嘉志
2023-03-14
问题内容

好的,所以我一直在研究这一点。我对Java还是很陌生,但认为这很容易。我已经尝试了本html" target="_blank">网站上已回答的所有方法,但仍然没有运气,通常,当我在这里查看时,我能够找到适合我所寻找答案的答案。有谁知道如何更改JFrame右上角的Java图标。我非常肯定它不是我的文件路径,因为我的所有图像都在同一个文件夹中并且都可以工作,这是我似乎无法使用的唯一文件。

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

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);

}

问题答案:

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

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编辑它。