G
Guest
Gast
hey, ich habe eine Frage zu dem MouseListener.
Ich hab n JPanel mit zwei Buttons, diese sollen eine Aktion für Rollover kennen (färben sich) und natürlich für das Anklicken.
ich hab ne rollover aktion implementiert auf ein button, aber irgendwie verkorkst er das.
der eine button ändert nie seine farbe, auch wenn ich drüber geh.
der andere ändert seine farbe, sobald ich ins panel gehe! obwohl ich nicht aufm button selbst bin!
Und das witzigste: wenn ich genau auf den button gehe, wird er wieder schwarz!
d.h. irgendwie macht er die aktion immer dann, wenn ich NICHT auf dem button bin, obwohl es ja andersrum sein müsste:
Wieso ist das so seltsam? Liegt das am Panel? Das Layout ist "null" und ich hab die Buttons per setBounds per Hand gelegt.
Ausserdem hab ich ein anderes Problem: Sobald ich auf einen Button klicke, funktioniert mein KEyListener nicht mehr!
Der ist in einem anderen Panel definiert, aber beide Panels liegen im selben Frame!
Wieso verträgt sich das nicht? Was muss ich dagegen tun?
danke
Ich hab n JPanel mit zwei Buttons, diese sollen eine Aktion für Rollover kennen (färben sich) und natürlich für das Anklicken.
ich hab ne rollover aktion implementiert auf ein button, aber irgendwie verkorkst er das.
der eine button ändert nie seine farbe, auch wenn ich drüber geh.
der andere ändert seine farbe, sobald ich ins panel gehe! obwohl ich nicht aufm button selbst bin!
Und das witzigste: wenn ich genau auf den button gehe, wird er wieder schwarz!
d.h. irgendwie macht er die aktion immer dann, wenn ich NICHT auf dem button bin, obwohl es ja andersrum sein müsste:
Code:
class bla extends JPanel{
bla(){
JButton start = new JButton();
setBounds....
JButton pause = new JButton();
setBounds...
add(start);
add(pause);
addMouseListener(this);
}
}
/* .... */
public void mouseEntered(MouseEvent e){
if (e.getSource() == start){
start.setForeground(Data.D_GREEN);
}
else{
pause.setForeground(Color.red);
}
}
public void mouseExited(MouseEvent e){
if (e.getSource() == start){
start.setForeground(Color.black);
}
else{
pause.setForeground(Color.black);
}
}
Wieso ist das so seltsam? Liegt das am Panel? Das Layout ist "null" und ich hab die Buttons per setBounds per Hand gelegt.
Ausserdem hab ich ein anderes Problem: Sobald ich auf einen Button klicke, funktioniert mein KEyListener nicht mehr!
Der ist in einem anderen Panel definiert, aber beide Panels liegen im selben Frame!
Wieso verträgt sich das nicht? Was muss ich dagegen tun?
danke