Witam! Podczas pisania programu operującego JLabel'ami oraz JCheck Boxami natrafiłem na problem, a mianowicie:
Chcę aby po zaznaczeniu odpowiedniego Chech Boxa label1 narysowal obrazek.
Tutaj kluczowe linijki:
public final Image obraz;
JLabel label1;
String path;
label1.setBounds(709, 283, 250, 150);
Ustawienie:
przyciskObrazu1.setBounds(100, 300, 80, 40);
Dodanie ActionCommand do przycisku:
przyciskObrazu1.setActionCommand("obraz");
Wczytanie obrazu:
ImageIcon obraz = new ImageIcon("obraz.png");
Ustawienie 1 obrazu label1:
label1 = new JLabel(obraz);
label1.setPreferredSize(new Dimension(250, 150));
oraz ActionListener, ktory po wywolaniu komendy "obraz" rysuje obraz w label1
przyciskObrazu1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("obraz")) { label1.setIcon(obraz); }
repaint();
}
});
Podczas kompilacji wyskakuje błąd (jedyny):
local variable Rogues is accessed from within inner class; needs to be declared final
Co jest nie tak? Pisałem już podobny program w ten sam sposób i było ok.