Bild bewegen mit Tastendruck

DerMax

Mitglied
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
 
Ä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:

Java:
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:
Java:
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.
 
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
Java:
myFrame.drawImage(0,0,bildschirmlänge,bildschirmhöhe,x,y,x+bildschirmlänge,y+bildschirmhöhe);
 
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.
 
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:
Java:
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
Code:
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.
 

Neue Themen


Zurück
Oben