# Bild bewegen mit Tastendruck



## DerMax (28. Okt 2012)

Hallo an alle,

Wie es bereits im Titel steht, würde ich gerne wissen, wie es möglich ist ein Bild mit dem Druck von zB "W" nach oben zu bewegen, das ganze soll aber im Vollbildmodus passieren - also die Frame ist im Vollbildmodus.

Das ganze ist ein sehr großer Hintergrund, der eben mit "w" nach oben bewegt werden soll...

Bitte um Hilfe & danke bereits im Voraus.

Mfg
Max


----------



## BRoll (28. Okt 2012)

Ändert an sich ja nichts groß obs Vollbild oder sonst was ist.

Tastendrücke fängt man mit nem KeyListener ab.

Vollbild mach ich in einem Frame ganz einfach so:


```
Frame main=new Frame();
		
	Dimension dimension=Toolkit.getDefaultToolkit().getScreenSize();
		   main.setSize(dimension);
		   fullresolution[0]=dimension.width;
		   fullresolution[1]=dimension.height;
		  main.setUndecorated(true);
		main.setVisible(true);
```

Und dann einfach das Bild an der Position x,y anzeigen.
Man hat immer eine Orignal-Auflösung, die man auf den ganzen
Bildschirm hochrechnet.
Zb. wenn man 1000x600 nimmt,
macht man ein BufferedImage:

```
BufferedImage screen =new BufferedImage(1000,600,BufferedImage.TYPE_INT_RGB);
```

und zeichnet in der paint alles da rein, mit screen.getGraphics.
Danach einfach das screen Image anzeigen lassen, bloß
mit angepasster Auflösung.

Somit passt es sich an alle Auflösungen an.


----------



## tvr (5. Nov 2012)

Das Problem ist nur wenn das Bild größer ist als der bildschirm

Ich würde wenn die taste w gedrückt wird einfach den Ausschnitt des Bilds der angezeigt werden soll anhand einer x und y Koordinate ändern

```
myFrame.drawImage(0,0,bildschirmlänge,bildschirmhöhe,x,y,x+bildschirmlänge,y+bildschirmhöhe);
```


----------



## BRoll (5. Nov 2012)

Musst du doch garnicht?!

Wenn das Bild größer als der Frame ist,
sieht man automatisch nur den Bildteil der im Frame liegt.
Der Rest ist ja hinter dem Fenster, im Nichts sozusagen.


----------



## tvr (5. Nov 2012)

Ja aber sollte sich ja der Bildausschnitt ändern damit man auch den Rest sehen kann


----------



## Michael... (6. Nov 2012)

tvr hat gesagt.:


> Ja aber sollte sich ja der Bildausschnitt ändern damit man auch den Rest sehen kann


Die Position des Bildes bestimmst Du ja vermutlich damit selbst:


tvr hat gesagt.:


> ```
> myFrame.drawImage(0, 0, ...;
> ```


Allerdings schaut ganz schön merkwürdig aus. In Swing zeichnet man innerhalb der überschriebenen paintComponent(Graphics) eines JPanels oder einer JComponent.
Das darin verfügbar Graphics Objekt bietet u.a. die Methode drawImage(Image, int, int,  ImageObserver). Mittels 
	
	
	
	





```
drawImage(img, -50, 4, null)
```
 kanns Du das Bild dann auf die Komponente malen, wo bei der Ursprung des Bildes um -50 in x und 4 in y Richtung verschoben ist.


----------



## tvr (6. Nov 2012)

Dann macht man es eben mit awt


----------



## Michael... (6. Nov 2012)

tvr hat gesagt.:


> Dann macht man es eben mit awt


Bist ja gar nicht der Fragesteller und der Thread ist ja auch schon etwas älter. Daher nehme ich mal an, dass der TO sein Problem bereits gelöst hat.
Für AWT gilt dasselbe wie für Swing.


----------

