Не могу прочесть изображение в Eclipse Swing
у меня не получается прочесть изображение, вылазит очень много ошибок в консоли.
Структура проекта:
Сам код:
package view;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.GridBagConstraints;
import javax.swing.JTextArea;
import java.awt.Insets;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
public class InfoFrame extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
InfoFrame frame = new InfoFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public InfoFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
GridBagLayout gbl_contentPane = new GridBagLayout();
gbl_contentPane.columnWidths = new int[]{0, 0};
gbl_contentPane.rowHeights = new int[]{154, 0, 0};
gbl_contentPane.columnWeights = new double[]{1.0, Double.MIN_VALUE};
gbl_contentPane.rowWeights = new double[]{1.0, 1.0, Double.MIN_VALUE};
contentPane.setLayout(gbl_contentPane);
JPanel panel = new JPanel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
Image scaledImg = img.getScaledInstance(getWidth(), getHeight(), Image.SCALE_SMOOTH);
g2d.drawImage(scaledImg, 0, 0, this);
}
};
GridBagConstraints gbc_panel = new GridBagConstraints();
gbc_panel.insets = new Insets(0, 0, 5, 0);
gbc_panel.fill = GridBagConstraints.BOTH;
gbc_panel.gridx = 0;
gbc_panel.gridy = 0;
contentPane.add(panel, gbc_panel);
JTextArea textArea = new JTextArea();
textArea.setText("\u0420\u043E\u0437\u0440\u043E\u0431\u043D\u0438\u043A \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0438:\r\n\u0406\u0432\u0430\u043D\u0435\u043D\u043A\u043E \u041E\u043B\u0435\u0433 \u0406\u0433\u043E\u0440\u043E\u0432\u0438\u0447\r\n\u0421\u0442\u0443\u0434\u0443\u0435\u043D\u0442 \u041A\u0411-201\r\[email protected]\r\n");
textArea.setFont(new Font("Monospaced", Font.PLAIN, 12));
textArea.setEditable(false);
GridBagConstraints gbc_textArea = new GridBagConstraints();
gbc_textArea.fill = GridBagConstraints.BOTH;
gbc_textArea.gridx = 0;
gbc_textArea.gridy = 1;
contentPane.add(textArea, gbc_textArea);
}
private URL url = InfoFrame.class.getResource("src/Photo.jpg");
private BufferedImage img = null;
{
try {
img = ImageIO.read(url);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
Ошибки в консоли:
java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1388)
at view.InfoFrame.<init>(InfoFrame.java:87)
at view.InfoFrame$1.run(InfoFrame.java:33)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Заранее спасибо за ваши ответы.
