JLabel beim Klick ändern

webix

Mitglied
Hallo,

wie kann man folgende Aufgabenstellung auf verschiedenen Wegen lösen:

Man hat ein JFrame mit 24 JLabels, jedes einzelne JLabel bekommt am Anfang eins von zwei möglichen Bildern. Klickt man auf ein JLabel sollte sich das Bild ändern.
 
Hi,

das ein mouselisteneer benutzt werden soll, ist verständlich, aber wie soll das ganze funktionieren, sprich der bilderwechsel, jedes einzelnen labels.
 
Hallo,

Schau mal hier:

Code:
import java.awt.FlowLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Memory extends JFrame {

	boolean a_1 = true;

	boolean b_1 = true;

	ImageIcon a1 = new ImageIcon("a1.jpg");

	ImageIcon a2 = new ImageIcon("a2.jpg");

	ImageIcon b1 = new ImageIcon("b1.jpg");

	ImageIcon b2 = new ImageIcon("b2.jpg");

	JLabel l1 = new JLabel(a1);

	JLabel l2 = new JLabel(b1);

	public void example() {
		l1.setBorder(BorderFactory.createEtchedBorder());
		l2.setBorder(BorderFactory.createEtchedBorder());

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(new FlowLayout());
		add(l1);
		add(l2);
		pack();

		MouseListener mouse1 = new MouseListener() {
			public void mouseClicked(MouseEvent e) {
				if (a_1) {
					l1.setIcon(a2);
					a_1 = false;
				} else {
					l1.setIcon(a1);
					a_1 = true;
				}
			}

			public void mousePressed(MouseEvent e) {
			}

			public void mouseReleased(MouseEvent e) {
			}

			public void mouseEntered(MouseEvent e) {
			}

			public void mouseExited(MouseEvent e) {
			}
		};
		l1.addMouseListener(mouse1);
		MouseListener mouse2 = new MouseListener() {
			public void mouseClicked(MouseEvent e) {
				if (b_1) {
					l2.setIcon(b2);
					b_1 = false;
				} else {
					l2.setIcon(b1);
					b_1 = true;
				}
			}

			public void mousePressed(MouseEvent e) {
			}

			public void mouseReleased(MouseEvent e) {
			}

			public void mouseEntered(MouseEvent e) {
			}

			public void mouseExited(MouseEvent e) {
			}
		};
		l2.addMouseListener(mouse2);

		setVisible(true);
	}

	public static void main(String[] args) {
		Memory test = new Memory();
		test.example();
	}
}

Vg Erdal
 
Zurück