Hallo!
Ich habe die Aufgabe, das eine Folge von GIF-Bildern in einem JFrame durchlaufen und dann beendet werden, wenn ich auf das Bild klicke.
Meine eigentliche Frage ist wie mache ich das mit dem klicken RICHTIG?
So habe ich es gelöst, allerdings hat ein Kumpel von mir das mittels MouseAdapter gelöst. Wo ist da der Unterschied oder welche Variante ist besser?
Grüße
Ich habe die Aufgabe, das eine Folge von GIF-Bildern in einem JFrame durchlaufen und dann beendet werden, wenn ich auf das Bild klicke.
Meine eigentliche Frage ist wie mache ich das mit dem klicken RICHTIG?
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Duke extends JFrame {
//Attribute
JLabel Bild = new JLabel(new ImageIcon("C:/Users/Robert/workspace/OOP II/src/T1.GIF"));
JProgressBar Bar;
int i = 1;
int delay = 100;
Timer T;
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String s ="C:/Users/Robert/workspace/OOP II/src/T"+i+".GIF";
Bild.setIcon(new ImageIcon(s));
Bar.setValue(i);
i++;
if (i>=11){
i = 1;
}
}
};
MouseListener a = new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
T.stop();
}
};
//Methoden
void run(){
T = new Timer(delay, taskPerformer);
T.start();
}
//Konstruktor
Duke(){
super("Duke");
setSize(800,600);
setLayout(new BorderLayout());
Bar = new JProgressBar(1, 10);
add(Bild, BorderLayout.CENTER);
add(Bar, BorderLayout.SOUTH);
Bild.addMouseListener(a);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Duke().run();
}
}
So habe ich es gelöst, allerdings hat ein Kumpel von mir das mittels MouseAdapter gelöst. Wo ist da der Unterschied oder welche Variante ist besser?
Grüße