Hallo,
ich habe ein Feld aus vielen JComponents, die farbig anzeigen, ob sie gedrückt worden sind. Bis jetzt muss ich alle einzeln auswählen. Ich beabsichtige nun bei gedrückter Maustaste über einige Komponenten zu fahren und diese dann als ausgewählt zu betrachten. Habe es mit MouseEntered bereits umgesetzt und es funktioniert bis auf den vorher ausgeführten Klick. Ein boolscher Wert hat nicht funktioniert, dann wird gar nichts mehr gezeichnet.
Kann ich mouseDragged und mouseEntered kombinieren. Für Tipps wäre ich sehr dankbar.
Schönes Wochenende an alle.
EDIT: Habe es nun mithilfe einer statischen Variable clicked gelöst. Finde es aber nicht so schön, gibt es eine bessere Lösung.
ich habe ein Feld aus vielen JComponents, die farbig anzeigen, ob sie gedrückt worden sind. Bis jetzt muss ich alle einzeln auswählen. Ich beabsichtige nun bei gedrückter Maustaste über einige Komponenten zu fahren und diese dann als ausgewählt zu betrachten. Habe es mit MouseEntered bereits umgesetzt und es funktioniert bis auf den vorher ausgeführten Klick. Ein boolscher Wert hat nicht funktioniert, dann wird gar nichts mehr gezeichnet.
Kann ich mouseDragged und mouseEntered kombinieren. Für Tipps wäre ich sehr dankbar.
Schönes Wochenende an alle.
EDIT: Habe es nun mithilfe einer statischen Variable clicked gelöst. Finde es aber nicht so schön, gibt es eine bessere Lösung.
Java:
public class Tile extends JComponent{
private boolean pressed;
private Color color;
private static boolean clicked = false;
public Tile(){
color = Color.black;
this.setBorder(new LineBorder(Color.white));
addMouseListener(new MouseAdapter(){
@Override
public void mousePressed(MouseEvent e){
pressed = !pressed;
repaint();
clicked = true;
}
public void mouseReleased(MouseEvent e){
clicked = false;
}
public void mouseEntered(MouseEvent e){
if(clicked){
pressed = !pressed;
repaint();
}
}
});
}
protected void paintComponent(Graphics g){
if(pressed){
g.setColor(Color.red);
g.fillRect(0, 0, 50, 50);
}else{
g.setColor(color);
g.fillRect(0, 0, 50, 50);
}
}
public Dimension getPreferredSize(){
return new Dimension(50, 50);
}
}
Zuletzt bearbeitet: