gpt4 book ai didi

java - jar 不会显示图像

转载 作者:行者123 更新时间:2023-11-29 07:35:46 25 4
gpt4 key购买 nike

我对图像图标有疑问。我知道之前有人问过这个问题,但我不知道如何解决这个问题,因为我认为我的问题是不同的。当我用 Eclipse 启动应用程序时,一切正常。但是当我把它变成可运行的 jar 时,它不会显示图像。

我的 ImagesHolder 类的一些代码:

package Clicker;

import javax.swing.ImageIcon;

public class ImagesHolder {

final public ImageIcon AccessoriesIcon = new ImageIcon("Images/Part_Accessories.png");
final public ImageIcon BodyIcon = new ImageIcon("Images/Part_Body.png");
final public ImageIcon BrakesIcon = new ImageIcon("Images/Part_Brakes.png");
final public ImageIcon CoolingIcon = new ImageIcon("Images/Part_Cooling.png");
final public ImageIcon ElectronicsIcon = new ImageIcon("Images/Part_Electronics.png");
final public ImageIcon EngineIcon = new ImageIcon("Images/Part_Engine.png");
final public ImageIcon ExaustIcon = new ImageIcon("Images/Part_Exaust.png");
final public ImageIcon FuelIcon = new ImageIcon("Images/Part_Fuel.png");
final public ImageIcon InteriorIcon = new ImageIcon("Images/Part_Interior.png");
final public ImageIcon SteeringIcon = new ImageIcon("Images/Part_Steering.png");
final public ImageIcon SuspensionIcon = new ImageIcon("Images/Part_Suspension.png");
final public ImageIcon TransmissionIcon = new ImageIcon("Images/Part_Transmission.png");
final public ImageIcon TiresIcon = new ImageIcon("Images/Part_Tires.png");

如果我将图片作为 URL,我无法重置图片图标,就像这里(我有标签,我想更改标签图标)

标签示例:

   public JLabel AccessoriesLVL1Label = new JLabel(ImagesHolder.LockedIcon);
AccessoriesLVL1Label.setHorizontalTextPosition(JLabel.CENTER);
AccessoriesLVL1Label.setVerticalTextPosition(JLabel.BOTTOM);
AccessoriesLVL1Label.setText("<html>Accessories LVL 1<br>" + "Count: " + Part.parts[1]);

并改变:

if(CarMain.main[5] >=1){
jbtnSellAccessoriesLv1.setEnabled(true);
Labels.AccessoriesLVL1Label.setIcon(ImagesHolder.AccessoriesIcon);
}

编辑:如果我这样做:

final public ImageIcon MoneyIcon = new ImageIcon("Images/Money.png"); 

制作为:

URL MoneyIcon = ImagesHolder.class.getResource("/Money.png");

我在这一行中遇到错误:

Labels.MoneyLabel.setIcon(ImagesHolder.MoneyIcon);

错误:

The method setIcon(Icon) in the type JLabel is not applicable for the arguments (URL)

最佳答案

还有一种从 jar 文件中获取图像的替代方法:

理想的方法是在项目根目录下有一个资源目录,并将其包含在源代码目录列表中。这将导致那里的所有图像都被复制到 JAR 中。如果你在那里创建一个子目录,resources/image,那么你最终会得到一个包含图像目录的 JAR。您通过类​​加载器访问这些图像:

classloader.getResourceAsStream("/image/image1.jpg");

或者,

classloader.getResource("/image/image2.jpg");

引用this详细示例的链接。

关于java - jar 不会显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36128628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com