Witam!
Nie mogę przebrnąć przez dodanie grafiki w tym kodzie. Czy muszę utworzyć nową klasę, czy istnieje jeszcze inny sposób rozwiązania?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//import javax.swing.ImageIcon.*;
import javax.swing.JFrame.*;
import javax.swing.JLabel.*;
class Kuiz implements ActionListener {
JLabel jlab, jlab2, jlab3;
Kuiz(){
//Tworzymy konteren IFrame
JFrame jfrm = new JFrame("Kuiz beta");
//Menadzer do układania tego syfu...
jfrm.setLayout(new FlowLayout());
//Rozmiary konteneru, rly? :/
jfrm.setSize(220, 90);
//Aplikacja zakonczy dzialanie na skutek zamkniecia programu
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// tworzy dwa przyciski
JButton jbtnA = new JButton("Samochód");
JButton jbtnB = new JButton("Rower");
//Słuchacze xD, jprld xD
jbtnA.addActionListener(this);
jbtnB.addActionListener(this);
//Pytanko
jlab3.setIcon(new javax.swing.ImageIcon(getClass().getResource("mustang_f.png")));
jlab2 = new JLabel("Ma cztery koła i silnik");
//dodaje do panelu dwa przyciski
jfrm.add(jlab2);
jfrm.add(jbtnA);
jfrm.add(jbtnB);
//Odpowiedź
jlab = new JLabel("Odpowiedziałeś...");
jfrm.add(jlab);
jfrm.setVisible(true);
}
public void actionPerformed(ActionEvent ae) {
if(ae.getActionCommand().equals("Samochód"))
jlab.setText("Brawo!");
else
jlab.setText("źle :(");
}
public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
new Kuiz();
}
});
}
}
Niby NetBeans nie zwraca na nic uwagi ale przy kompilacji:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:217)
at Kuiz.<init>(Kuiz.java:40)
at Kuiz$1.run(Kuiz.java:64)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
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)