Fenster per Button verschieben

llabusch

Mitglied
Liebe Java-Gemeinde,


Ich habe ein Fenster, welches 4 Buttons enthält (Links, Rechts, Oben, Unten). Dieses Programm soll nichts anderes, als dieses Fenster beim Druck auf einen der 4 Buttons(Richtungen) um 20px zu verschieben.

Ich habe alles ausprogrammiert und das Grundgerüst funktioniert einwandfrei. Nur dass mit dem tatsächlichen verschieben ist mir noch nicht ganz geheuer.

Meine Grundidee sieht so aus:

Java:
class ButtonListener implements ActionListener{
		
			private int x, y;
			
		public void actionPerformed(ActionEvent e) {
				
			  			
			if (e.getActionCommand().equals("Fenster nach links")){
				
			
				
				setLocation(x-20, y);
			}
				
										
			if (e.getActionCommand().equals("Fenster nach rechts")){
				
				setLocation(x+20, y);
			}
				
				
			if (e.getActionCommand().equals("Fenster nach oben")){
				
				setLocation(x, y-20);
				
			}
					
					
			if (e.getActionCommand().equals("Fenster nach unten")){
				
				setLocation(x, y+20);
			}
				
			
		}
	}

Ich muss jedoch aber ja die Klassenrivalen X und Y mit den momentanen Koordinaten des Fensters füllen, damit das ganze dann auch funktioniert, nur wie mache ich das?
Mit der Methode getLocation() komme ich nicht weiter, oder verstehe es auch vielleicht nicht richtig....



Schon einmal herzlichsten Dank! 🙂
 
Was hat das mit pack() zu tun? pack() passt die Fenstergröße auf die darin befindlichen Komponenten an, das hat doch gar nichts mit meinem Problem zu tun .....
 
Moin,

ja, sorry - dass mit dem "pack" war ein Schnellschuß - sprich: Blödsinn ... 😀

Leider weiß ich nicht, was Dumit den privaten Variablen überhaupt willst. Sie sind ja nicht initialisiert !!

Auf jeden Fall musst Du die aktuelle Position, die geändert werden soll, natürlich vorher im actionPerformed bekannt machen!

Java:
Point parloc = this.getLocation();
Nun stehen auf "parloc.x" und "parloc.y" die aktuellen x- und y-Werte, die Du ändern kannst !!

Gruß
Klaus
 

Neue Themen


Zurück
Oben