JDialog mit mouseDragged(), verschieben ?

Status
Nicht offen für weitere Antworten.

pain_md

Mitglied
Hi

ich habe einen JDialog. die titelbar ist entfernt wurden. nun muss ich aber die positionierung des Dialogs selbst machen. ich dachte das ich einfach MouseMotionListener verwende und dann in der mouseDragged() mehtode JDialog.move(event.getX(), event.getY()) eingebe.

naja, irgendwie bewegt sich der dialog schon, aber da ist zum einen eine art flackern und dann erscheint der dialog noch einmal und zwischen diesen beiden dialogen entsteht dann auf aufrichtiges hin un her flackern.

weiss wer warum und wie ich das abstellen kann ? welche alternativen gibt es ?

besten dank

pain
 
Wenn du den Dialog verschiebst, verschiebst du gleichzeitig den Bezugspunkt der Maus. (Es ist so, wie wenn du auf einem Bürostuhl stehst... )

Eigentlich sollte es reichen, wenn du die bereits erfolgte Verschiebung in alle weiteren einrechnest. ???:L

mfg Beni
 
hi

ähm, erstmal danke für die antwort.
was verstehst du unter dem "Bezugspunkt der Mause" ? und wie kann ich das problem letztendlich lösen ?
wäre schön wenn du nochmal kurz was zu sagen könntest.danke

pain
 
Sowas:
Code:
private Point mouseStart;

public void mousePressed( ... ){
	mouseStart = e.getPoint();
}

public void mouseDragged( ... ){
      int dx = (int)(e.getX() - mouseStart.getX());
      int dy = (int)(e.getY() - mouseStart.getY());

      int x = dialog.getX() + dx;
      int y = dialog.getY() + dy;
			      
			      
      dialog.setLocation( x, y );
}
 
Tausend Dank. du bist mein held , es läuft ! ich sitze schon seit 2 tagen an dem problem. mal sehn wie lange ich jetz noch brauche um zu verstehen wie das nun eigentlich abläuft. so denn , besten dank nochmal.

pain
 
ich habe das selbe Problem, nur leider hilft mir der Quelltext irgendwie nicht weiter... ;-(

ich hab nen JPopupMenu das sich mit dem Mauszeiger bewegt, wenn die Maus über eine bestimmte Zelle einer Tabelle wischt.

Ich habe das mit dem MouseMotionListener gemacht und dann halt mit mouseMoved....

Code:
MouseMotionAdapter mouseMove = new MouseMotionAdapter() {
        public void mouseMoved(MouseEvent m) {

            if (popTable == null) {
                popTable = new PopupTable();
                

            } else {

                popTable.getPopup().setLocation(m.getPoint());

            }
        }

    };

mir ist klar das der Fehler bei setLocation liegt und zwar das man direkt den aktuellen Mousepunkt zuweist...aber nicht wie man das behebt, bzw. nicht mehr..
ich hatte es gestern geschafft, nur die Datei ist weg und jetzt doktore ich schon den ganzen Tag herum um das wieder hinzubekommen ;-(

Wäre super wenn einer von euch mir dabei helfen könnte

Gruß
Sancho
 
Beni hat gesagt.:
Wenn du den Dialog verschiebst, verschiebst du gleichzeitig den Bezugspunkt der Maus. (Es ist so, wie wenn du auf einem Bürostuhl stehst... )

Eigentlich sollte es reichen, wenn du die bereits erfolgte Verschiebung in alle weiteren einrechnest. ???:L

mfg Beni
Eine andere Möglichkeit währe
Code:
SwingUtilities.convertPointToScreen(point, component)
gewesen...

@Sancho
kannst du mal genauer erklären welches Problem du hast?
 
also, ich habe z.B. nur zum Test einen JFrame. Diesem habe ich einen MouseMotionListener geadded...wenn die maus über den JFrame fährt dann öffnet sich ein JPopupMenu und bleibt die ganze Zeit über geöffnet. Nur die Position verändert sich mit jeder Mausbewegung...dabei flackert das JPopuMenu aber andauernd...
 
Und das Popupmenu muss sich immer der Maus hinterherbewegen?
Kannst du keine Abstufungen benutzen (alle 10 Punkte oder so)?
 
IMHO sollte ma sich immer an etablierten Standarts orientieren. Mich würds auch ziemlich nerven wenn mich ein Popup-Menü 'verfolgt'.
Wie willst du überhaupt auf das Menü Klicken wenn es immer auf der Mouse-Position sitzt ???:L
 
Dann lass doch das Popup da wo es ist.
Je nachdem über welche Tabellenspalte du fährst setzt du einfach den ToolTipText und fertig.
 
oder kann es sein das der irgendwie bei setLocation(m.getPoint.x, m.getPoint.y);
ausserhalb des Monitors gelangt und deswegen so flackert ?
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben