Сначала я использовал JLabel и ImageIcon. Он работал нормально. Однако изображение не отображается, когда я экспортировал его в JAR.
Итак, я создал свой собственный ImagePanel и использовал метод drawImage для его отображения. Но она заканчивается, и бросает исключениеДобавить изображения в myPanel с помощью ImageIO.read
в теме «главный» java.lang.IllegalArgumentException: вход == нуля!
, мой код следует ниже ..
STARTMENU
public class startMenu extends JFrame{
...
URL imgUrl = getClass().getResource("images/contacts.png");
public startMenu(){
...
ImagePanel imgPanel = new ImagePanel(imgUrl);
}
}
ImagePanel
public class ImagePanel extends JPanel{
private Image image;
private URL imgUrl;
public ImagePanel(URL url){
this.imgUrl= url;
try{
image = ImageIO.read(imgUrl);
}
catch (IOException e) {
System.out.println("no such file");
}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(image!=null){
g.drawImage(image, 10, 12, 128, 128, this);
}
else{
g.drawImage(image, 0, 0, this);
}
}
@Override
public Dimension getPreferredSize() {
return new Dimension(150,150);
}
}
Если я хотел бы использовать ImageIcon с ImageUrl. Он показывает то же сообщение об ошибке.
URL imgUrl = getClass().getResource("images/contacts.png");
private ImageIcon adBook = new ImageIcon(imgUrl);
private JLabel mainImg = new JLabel(adBook);
Вы уверены, что ваше изображение находится в вашем банке в директории с именем ' "изображения"'? (так как вы загружаете его с помощью getClass(). getResource ("images/contacts.png"); ') – ulmangt
' "images/contacts.png" 'Поместите ведущий'/', например. '" /images/contacts.png "' –
* "Сначала я использовал JLabel и ImageIcon. Он работал нормально. Однако изображение не отображается, когда я экспортировал его в JAR." * Это должно быть потому, что вы поставляли 'String' в конструктор. Существует также конструктор для 'URL'. Затем проблема заключается в определении местоположения изображения, что является одним и тем же для любого способа его выполнения. Вернитесь к использованию 'JLabel' для отображения изображения. –