Hallo liebe Community,
ich habe in meinem Programm einen Timer und einen MouseListener eingebaut. Der MouseListener wird beim starten des Programms direkt dem Frame hinzugefügt. Ich habe einfach mal eine Testnachricht eingebaut die immer wenn man klickt den Wert der Variablen i aus der Klasse "Vorgeschichte" ausgibt. Standard gemäß ist i auf 0 gesetzt. Wenn man nun in irgend einem anderen Bild klickt wird auch "0" in der Console ausgegeben. Nachdem der Timer gestartet ist habe ich i dann auf 1 gesetzt, doch der MouseListener reagiert nicht mehr. Wenn ich in den Frame klicke kommt keine Nachricht in der Console. Woran liegt der Fehler?
Danke schon mal im Vorraus.
Main:
[Java]
public static void main(String[] args) throws IOException {
Main frame = new Main("MineJump");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1400,800);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
Menus.hauptmenu(frame);
Image icon = new ImageIcon(Main.class.getResource("/Images/icon.png")).getImage();
frame.setIconImage(icon);
frame.setVisible(true);
frame.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseClicked(MouseEvent e) {
if(Vorgeschichte.i == 0) {
System.out.println("0");
} else {
System.out.println("1");
}
}
});
}
[/Java]
Vorgeschichte:
[Java]
public static void vorgeschichte1(JFrame frame) {
JPanel panelVG = new JPanel();
panelVG.setLayout(null);
panelVG.setBounds(0, 0, 1400, 800);
panelVG.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseMoved(MouseEvent e) {
Vorgeschichte.mX = e.getX();
Vorgeschichte.mY = e.getY();
}
});
JLabel background1 = new JLabel(new ImageIcon(Main.class.getResource("/Images/backgroundVG1.png")));
background1.setBounds(0, 0, 1400, 800);
JLabel text1 = new JLabel(new ImageIcon(Main.class.getResource("/Images/textVG1.png")));
text1.setBounds(50, position, 1000, 200);
JLabel hinweisKlicken = new JLabel(new ImageIcon(Main.class.getResource("/Images/hinweisKlicken.png")));
t = new Timer(50, new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(position > 550) {
text1.setBounds(50, position, 1000, 200);
panelVG.add(text1);
panelVG.add(background1);
frame.add(panelVG);
position = position-1;
i = 1;
} else {
tKlicken = new Timer(1, new ActionListener() {
public void actionPerformed(ActionEvent e) {
text1.setBounds(50, 550, 1000, 200);
panelVG.add(text1);
hinweisKlicken.setBounds(mX+20, mY+20, 200, 80);
panelVG.add(hinweisKlicken);
panelVG.add(background1);
frame.add(panelVG);
}
});
panelVG.add(text1);
panelVG.add(hinweisKlicken);
panelVG.add(background1);
frame.add(panelVG);
tKlicken.setInitialDelay(0);
tKlicken.setRepeats(true);
tKlicken.start();
}
}
});
panelVG.add(text1);
panelVG.add(background1);
frame.add(panelVG);
t.setInitialDelay(0);
t.setRepeats(true);
t.start();
}
[/Java]
MfG
Der_Falke_
ich habe in meinem Programm einen Timer und einen MouseListener eingebaut. Der MouseListener wird beim starten des Programms direkt dem Frame hinzugefügt. Ich habe einfach mal eine Testnachricht eingebaut die immer wenn man klickt den Wert der Variablen i aus der Klasse "Vorgeschichte" ausgibt. Standard gemäß ist i auf 0 gesetzt. Wenn man nun in irgend einem anderen Bild klickt wird auch "0" in der Console ausgegeben. Nachdem der Timer gestartet ist habe ich i dann auf 1 gesetzt, doch der MouseListener reagiert nicht mehr. Wenn ich in den Frame klicke kommt keine Nachricht in der Console. Woran liegt der Fehler?
Danke schon mal im Vorraus.
Main:
[Java]
public static void main(String[] args) throws IOException {
Main frame = new Main("MineJump");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1400,800);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
Menus.hauptmenu(frame);
Image icon = new ImageIcon(Main.class.getResource("/Images/icon.png")).getImage();
frame.setIconImage(icon);
frame.setVisible(true);
frame.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseClicked(MouseEvent e) {
if(Vorgeschichte.i == 0) {
System.out.println("0");
} else {
System.out.println("1");
}
}
});
}
[/Java]
Vorgeschichte:
[Java]
public static void vorgeschichte1(JFrame frame) {
JPanel panelVG = new JPanel();
panelVG.setLayout(null);
panelVG.setBounds(0, 0, 1400, 800);
panelVG.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseMoved(MouseEvent e) {
Vorgeschichte.mX = e.getX();
Vorgeschichte.mY = e.getY();
}
});
JLabel background1 = new JLabel(new ImageIcon(Main.class.getResource("/Images/backgroundVG1.png")));
background1.setBounds(0, 0, 1400, 800);
JLabel text1 = new JLabel(new ImageIcon(Main.class.getResource("/Images/textVG1.png")));
text1.setBounds(50, position, 1000, 200);
JLabel hinweisKlicken = new JLabel(new ImageIcon(Main.class.getResource("/Images/hinweisKlicken.png")));
t = new Timer(50, new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(position > 550) {
text1.setBounds(50, position, 1000, 200);
panelVG.add(text1);
panelVG.add(background1);
frame.add(panelVG);
position = position-1;
i = 1;
} else {
tKlicken = new Timer(1, new ActionListener() {
public void actionPerformed(ActionEvent e) {
text1.setBounds(50, 550, 1000, 200);
panelVG.add(text1);
hinweisKlicken.setBounds(mX+20, mY+20, 200, 80);
panelVG.add(hinweisKlicken);
panelVG.add(background1);
frame.add(panelVG);
}
});
panelVG.add(text1);
panelVG.add(hinweisKlicken);
panelVG.add(background1);
frame.add(panelVG);
tKlicken.setInitialDelay(0);
tKlicken.setRepeats(true);
tKlicken.start();
}
}
});
panelVG.add(text1);
panelVG.add(background1);
frame.add(panelVG);
t.setInitialDelay(0);
t.setRepeats(true);
t.start();
}
[/Java]
MfG
Der_Falke_