Bild schieben via Drag 'n Drop ist zu schnell!

Status
Nicht offen für weitere Antworten.

newnoise

Mitglied
Hallo,

nachdem ich nun die Basics einigermaßen verstanden habe, gehts los :)
Und gleich tritt wieder ein Problem auf :)
Zu sehen hier:
KLICK
Das Bild zieht sich viel zu schnell. Merkt ihr wahrscheinlich.

Aber ich finde partout den Haken in meinem Code nicht:

Java:
import java.awt.*;
import java.applet.*;
import java.net.*;
import java.awt.event.*;

public class Map extends Applet implements MouseListener, MouseMotionListener
{
     Image my_gif;
     URL base;
     MediaTracker mt;
     
     int xposdiff = 0;
     int yposdiff = 0;
     int xpos = 0;
     int ypos = 0;
     int mousesposx;
     int mousesposy;

     Boolean mousedown = false;

     public void init()
     {
  		  addMouseListener(this);
  		  addMouseMotionListener(this);

          mt = new MediaTracker(this);

         try {

               base = getDocumentBase();
         }
         catch (Exception e) {}

          my_gif = getImage(base,"pics/1/im0_0.png");
          mt.addImage(my_gif,1);

         try {
               mt.waitForAll();
          }
          catch (InterruptedException  e) {  }

 
     }

     public void paint(Graphics g)
     {
          g.drawImage(my_gif,xpos,ypos,this);
     }

     public void mouseDragged(MouseEvent me)
	 {
		    int deltax = mousesposx - me.getX();
		 	int deltay = mousesposy - me.getY();

		 	xpos -= deltax;
		 	ypos -= deltay;
	        repaint();
		 }

	 public void mousePressed(MouseEvent me)
	 {
		 	 mousesposx = me.getX();
		 	 mousesposy = me.getY();
	 }

	 public void mouseReleased(MouseEvent me)
	 {}
     public void mouseMove(MouseEvent me)
     {}
	 public void mouseExited(MouseEvent me)
	 {}
	 public void mouseEntered(MouseEvent me)
	 {}
	 public void mouseClicked(MouseEvent me)
	 {}
	 public void mouseMoved(MouseEvent me)
	 {}
}

Vielen, vielen Dank!
 
M

MiDniGG

Gast
Java:
int deltax = mousesposx - me.getX();
int deltay = mousesposy - me.getY();

xpos -= deltax;
ypos -= deltay;
repaint();

Wieso machst Du nicht einfach:

Java:
xpos = me.getX();
ypos = me.getY();
repaint();

Das sollte doch das Problem beheben, oder nicht?

Du kannst ja dann noch die Bildgröße durch 2 Teilen, sodass Du das Bild in der Mitte verschiebst o.ä. ...
 

newnoise

Mitglied
na das hatte ich erst, dann springt das bild aber halt immer zum cursor.
habs nun aber hinbekommen.
danke!




gibt aber nen weiteres problem.
der flackert nun immer so beim scrollen. kriegt man das irgendwie weg?

danke!
 

Heady86

Bekanntes Mitglied
Das flackern kommt durch die update() Methode.

Die löscht beim Aufruf den Background und ruft dann die paint() auf. Somit wird bei einer Änderung ständig repaint() aufgerufen was wiederum zum update() führt.

Das Flackern ensteht also durch das ständige löschen und neuzeichnen.

Lösung:

update() Methode überschreiben mit dem Ziel die paint() Methode direkt aufrufen zu können (damit der Background nicht immer gelöscht wird)

Grüße
 

Heady86

Bekanntes Mitglied
womit muss ich die update() methode denn überschreiben? einfach leer?

Ne, du musst ja die paint() direkt aufrufen. Versuchs mal so:

Java:
public void update (Graphics g) {
   paint(g);
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Applet drawImage gibt falsches bild aus Tools - Maven, Gradle, Ant & mehr 6
G Bild wird in Applet nicht angezeigt! Tools - Maven, Gradle, Ant & mehr 6
C Mein Applet zeigt mein Bild im Internet nicht an Tools - Maven, Gradle, Ant & mehr 2
H Borderlayout und Bild in Applet einfügen Tools - Maven, Gradle, Ant & mehr 4
F Bild speichern Tools - Maven, Gradle, Ant & mehr 4
K Applet mit mehreren Paketen und Bild/Ton-Ordnern in Browser Tools - Maven, Gradle, Ant & mehr 2
U Live-Bild wird im Browser nicht aktualisiert Tools - Maven, Gradle, Ant & mehr 21
G bild öffnen mit BufferedImage Tools - Maven, Gradle, Ant & mehr 4
D Runnable JApplet mit Bild/Ovals "übermalt" Buttons Tools - Maven, Gradle, Ant & mehr 6
F Warum wird das Bild nicht angezeigt? Tools - Maven, Gradle, Ant & mehr 9
F Bild über Applet aussuchen und auf Serverladen Tools - Maven, Gradle, Ant & mehr 14
K Bild auf JButton in Applet, JButton wir aber net angezeigt? Tools - Maven, Gradle, Ant & mehr 7
S mouseEntered mit einem Bild im Applet Tools - Maven, Gradle, Ant & mehr 17
M Applet soll Bild übertragen Tools - Maven, Gradle, Ant & mehr 9
F Ein Bild in einem Applet anzeigen? Tools - Maven, Gradle, Ant & mehr 2
J Bild in Array einlesen Tools - Maven, Gradle, Ant & mehr 13
T Mit Applet Bild von einer anderen HP darstellen Tools - Maven, Gradle, Ant & mehr 28
S Access Denied beim Bild laden Tools - Maven, Gradle, Ant & mehr 7
G Bild in einem TextField oder TextArea? Tools - Maven, Gradle, Ant & mehr 3
K Java Lade - Bild ändern Tools - Maven, Gradle, Ant & mehr 9
D sich bewegendes bild + timer Tools - Maven, Gradle, Ant & mehr 6
B Bild Tools - Maven, Gradle, Ant & mehr 2
G Bild im Applet laden und ausgeben Tools - Maven, Gradle, Ant & mehr 2
K Bild (jpg) in einem JApplet Tools - Maven, Gradle, Ant & mehr 2
J Screenshot to Form / Clipboard Bild übertragen Tools - Maven, Gradle, Ant & mehr 2
Z java-puzzel lädt bild nicht Tools - Maven, Gradle, Ant & mehr 3
J Bild als Hintergrund Tools - Maven, Gradle, Ant & mehr 24
S Problem: Bild im Applet wird 3-4 Mal geladen Tools - Maven, Gradle, Ant & mehr 5
L Grafiken auf JPanel per Drag&Drop verschieben Tools - Maven, Gradle, Ant & mehr 2

Ähnliche Java Themen

Neue Themen


Oben