In diesem Artikel werden die von Java implementierten Panelfunktionen beschrieben, die ausgewählt und geschleppt werden können. Teilen Sie es für Ihre Referenz wie folgt weiter:
Ich habe heute einen Beitrag im Forum gesehen und hoffe, Bilder wie das Ziehen von Karten in Schwung zu schleppen. Hier ist die einfachste Implementierung, die eine Grundidee bietet.
Javax.swing importieren. die Form. Verwendung Nach dem Öffnen des Bildes können Sie das Bild auf das Formular ziehen und fallen lassen. * / @Unterdrückungswarnings ("Serial") öffentliche Klasse DRAGINGFRAME erweitert JFrame { /*** Konstruktor** @Throws HeadlessException? ? ? */ public dRagingFrame () löscht HeadlessException {this.setDefaultCloseOperation (exit_on_close); getContentPane (). setLayout (New BorderLayout ()); getContentPane (). add (new ImagePanel (), BorderLayout.Center); } // Programmeintrag public static void main (String [] args) löst eine Ausnahme aus {uimanager.setlookandfeel (uimanager.getSystemLookandFeelClassName ()); DRAGINGFRAME RAME = new DRAGINGFRAME (); Frame.SetSize (400, 300); Frame.SetLocation (300, 300); Frame.SetResizable (falsch); Frame.Settitle ("www.vevb.com Doppelklick, um das Bild zu öffnen und dann zu ziehen und zu fallen"); Frame.SetVisible (True); }}/*** Panel, das das Bild ziehen und fallen lassen kann // Status "Status privates Bild ziehen; // Bild zu angezeigt werden private Punktbildposition = neuer Punkt (0, 0), // Die aktuelle Position des Bilds imagestartPosition = neuer Punkt (0, 0), // Die Position des Bildes zu Beginn jedes Zuges (dh die Position nach dem letzten Drag) MousSestartPosition; // Die Position der Maus zu Beginn jedes Drag-ImagePanel () {addmouselistener (neuer Mouselistener () {// das Bild öffnen, wenn Sie auf die Maus-öffentliche void Mouseclicked (mousevent e) {if (e.getClickCount () == 2) {OpenImage (). aufgezeichnet. == dragStatus.dagging) {status = dragStatus.ready; addMousemotionListener (new MousemotionListener () {// Java hat ein Drag & Drop -Ereignis, bewegen } /*** Bewegen Sie das Bild. Tatsächlich erfolgt die Zeichnungsarbeiten in PaintComponent (), wo sie nur die Bildposition berechnet und dann die Methode aufruft. * * @param Point Current Maus Position */ private void MoveImage (Punktpunkt) {// Die aktuelle Position des Bildes entspricht der Ausgangsposition des Bildes plus dem Versatz der Mausposition. ImagePosition.SetLocation (ImagestartPosition.getX () + (point.getX () - MousSeStARTPosition.getX ()), ImagestartPosition.gety () + (point.gety () - MousSeStartPosition.gety ())); Repaint (); } // das Bild private void openImage () {System.out.println ("Image ...") öffnen; Datei Datei = createFilechoOser (). GetSelectedFile (); if (Datei! if (image! = null) {this.Repaint (); }}} // Erstellen Sie ein Dialogfeld "Open Datei" privat jFilechooser createFilechoOser () {jFilechooSer chooser = new JFilechooSer (); Chooser.setDialoGTitle ("Bitte Bilddatei auswählen ..."); Chooser.AddchooSableFilter (neuer DateinameExtensionSesionSesion ("Common Image Format", "JPG", "JPEG", "GIF", "PNG"); Chooser.Showopendialog (this); Return Chooser; } @Override Protected void PaintComponent (Grafik g) {Super.PaintComponent (g); if (image! }} private enum dragStatus {ready, schleppend}}Laufeffekt:
Für weitere Informationen zu Java -Algorithmen können Leser, die an dieser Website interessiert sind, die Themen "Java -Datenstruktur und Algorithmus -Tutorial", "Zusammenfassung der Java -Operation DOM -Knoten -Tipps", "Zusammenfassung der Java -Datei- und Verzeichnisoperationstipps" und "Zusammenfassung der Java -Cache -Operation Tipps" anzeigen
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.