У меня проблема с Image Icons. Я знаю, что это было задано раньше, но я не могу понять, как это исправить, потому что я думаю, что моя проблема другая. Когда я запускаю приложение с eclipse, все работает. Но когда я делаю это runnable jar, он не будет показывать изображения.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)
Прежде всего, вы проверили, что они находятся внутри банки? На всякий случай ... –
@ user3272243 Да, я открыл файл jar как zip, и все изображения были. Но они были в основном, а не в папке с изображениями. Я попытался изменить местоположение изображения (в коде, чтобы работать, если изображения находятся в главной папке), но все равно не отображается изображение. – MsCrelix
Если вы перемещаете их внутри банки, как если бы это был почтовый индекс в «правильное местоположение», они работают? Попытайтесь также использовать абсолютный маршрут, разместите их в этом месте, посмотрите, работает ли этот кувшин, чтобы отбросить его, если его трубка не работает или если проблема на вашей стороне. –