JLayeredPane - Drag&Drop - mouseDragged

Status
Nicht offen für weitere Antworten.

redbomber

Bekanntes Mitglied
Hi zusammen,
ich habe eine Frage zur JLayeredPane, bzw. allgemein zu MouseEvents.

In meiner JLayeredPane befinden sich Panels, die ich durch gedrückthalten der Maus verschieben kann.
Dies möchte ich nur für die linke Maustaste anbieten. Wie kann ich also bei dem mouseDragged() Event abfangen, welcher Button gedrückt wurde? BUTTON1 bzw. BUTTON3 geht nicht habe ich schon versucht.
Ebenso habe ich flags gesetzt (bei mouseClicked()) ob es sich um die linke oder rechte Maustaste handelt. Geht aber auch nicht.

Habt ihr vielleicht noch eine Idee?
 

Eule

Mitglied
Hi

Ich würde das nicht erst mit mouseDragged() abfangen, sondern schon mit mousePressed() .

Evtl kannst du mal deinen konkreten Code posten, damit klarer wird, was du schon genau gemacht hast und was nicht.

Evtl blöde Frage, aber hast du evtl den MouseMotionListener zur falschen Komponente hinzugefügt? Weil bei mir funktioniert das ohne Probleme. Hier mal mein Codeausschnitt:

Java:
public class CellMouseListener extends MouseAdapter {
		public void mouseClicked(MouseEvent e) {
			if(e.getClickCount()==2) {
				
				//if it was the left mouse button
				if(e.getButton() == MouseEvent.BUTTON1) {
					.
					.
					.				
				}
			}
		}
		
		public void mousePressed(MouseEvent e){
			
			//if the source was the right mouse button...
			if(e.getButton() == MouseEvent.BUTTON3) {
				.
				.
				.
			}
		}
	}
 

redbomber

Bekanntes Mitglied
hi, vielen dank.
jetzt hat es funktioniert.
Setze einfach die Flags, bei mousePressed() so wie du gesagt hast :)
 

redbomber

Bekanntes Mitglied
hmm, komisch.
Dann habe ich wieder das gleiche Problem. Also da bewegen sich dann meine Panel garnicht mehr.

Kann es einfach sein, daß ich bei MouseDragged garnicht rausbekommen kann, welcher MouseButton gedrückt wurde?
 

Ebenius

Top Contributor
Dann habe ich wieder das gleiche Problem. Also da bewegen sich dann meine Panel garnicht mehr.

Kann es einfach sein, daß ich bei MouseDragged garnicht rausbekommen kann, welcher MouseButton gedrückt wurde?
Ich kann das nicht nachvollziehen. Probier mal dieses Testprogramm aus.
Java:
/* (@)MouseTracker.java */

/* Copyright 2009 Sebastian Haufe

 * Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       [url]http://www.apache.org/licenses/LICENSE-2.0[/url]

 * Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License. */

package com.ebenius;

import java.awt.BorderLayout;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;

/**
 * TODO: Javadoc me!
 * 
 * @version $Revision$ as of $Date$
 * @author Sebastian Haufe
 * @since Playground-3.8
 */
public class MouseTracker {

  public static void main(String[] args) {
    final DefaultTableModel feedBackModel = new DefaultTableModel(0, 4) {

      @Override
      public Class<?> getColumnClass(int columnIndex) {
        return columnIndex == 0 ? String.class : Boolean.class;
      }

      @Override
      public boolean isCellEditable(int row, int column) {
        return false;
      }
    };
    feedBackModel.setColumnIdentifiers(new String[] { "Event", "Left Down",
      "Middle Down", "Right Down" });
    final JTable feedBackTable = new JTable(feedBackModel);

    final JLabel testLabel =
          new JLabel("<html><body>"
                + "Test your mouse motions here! Works with:"
                + "<ol><li>mouse pressed"
                + "<li>mouse released"
                + "<li>mouse clicked"
                + "<li>mouse entered"
                + "<li>mouse exited"
                + "<li>mouse moved"
                + "<li>mouse dragged"
                + "<li>mouse wheel"
                + "</ol></body></html>");

    class MouseVoodoo
      implements MouseListener, MouseMotionListener, MouseWheelListener {

      private void updateModel(MouseEvent e) {
        final String eventName;
        switch (e.getID()) {
        case MouseEvent.MOUSE_CLICKED:
          eventName = "CLICKED";
          break;
        case MouseEvent.MOUSE_PRESSED:
          eventName = "PRESSED";
          break;
        case MouseEvent.MOUSE_RELEASED:
          eventName = "RELEASED";
          break;
        case MouseEvent.MOUSE_ENTERED:
          eventName = "ENTERED";
          break;
        case MouseEvent.MOUSE_EXITED:
          eventName = "EXITED";
          break;
        case MouseEvent.MOUSE_MOVED:
          eventName = "MOVED";
          break;
        case MouseEvent.MOUSE_DRAGGED:
          eventName = "DRAGGED";
          break;
        case MouseEvent.MOUSE_WHEEL:
          eventName = "WHEEL";
          break;
        default:
          eventName = "UNKNOWN";
        }
        feedBackModel.insertRow(0, new Object[] { eventName,
          Boolean.valueOf(SwingUtilities.isLeftMouseButton(e)),
          Boolean.valueOf(SwingUtilities.isMiddleMouseButton(e)),
          Boolean.valueOf(SwingUtilities.isRightMouseButton(e)), });
        if (feedBackModel.getRowCount() > 100) {
          feedBackModel.removeRow(100);
        }
      }

      public void mouseClicked(MouseEvent e) {
        updateModel(e);
      }

      public void mouseEntered(MouseEvent e) {
        updateModel(e);
      }

      public void mouseExited(MouseEvent e) {
        updateModel(e);
      }

      public void mousePressed(MouseEvent e) {
        updateModel(e);
      }

      public void mouseReleased(MouseEvent e) {
        updateModel(e);
      }

      public void mouseDragged(MouseEvent e) {
        updateModel(e);
      }

      public void mouseMoved(MouseEvent e) {
        updateModel(e);
      }

      public void mouseWheelMoved(MouseWheelEvent e) {
        updateModel(e);
      }
    }

    final MouseVoodoo mouseVoodoo = new MouseVoodoo();
    testLabel.addMouseListener(mouseVoodoo);
    testLabel.addMouseMotionListener(mouseVoodoo);
    testLabel.addMouseWheelListener(mouseVoodoo);

    final JPanel contentPane = new JPanel(new BorderLayout(6, 6));
    contentPane.add(testLabel, BorderLayout.NORTH);
    contentPane.add(new JScrollPane(feedBackTable), BorderLayout.CENTER);

    final JFrame f = new JFrame("Test Frame: MouseTracker"); //$NON-NLS-1$
    f.setContentPane(contentPane);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    f.setVisible(true);
  }
}
Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Swing JLayeredPane - Drag&Drop Positionen vertauschen AWT, Swing, JavaFX & SWT 3
B viele JPanels auf JLayeredPane -> to SVG? AWT, Swing, JavaFX & SWT 15
S Swing JLayeredPane Anordnung funktioniert nicht AWT, Swing, JavaFX & SWT 2
S Swing JLayeredPane "Phänomen"? AWT, Swing, JavaFX & SWT 7
E Swing JPanel in JLayeredPane animieren AWT, Swing, JavaFX & SWT 7
R Swing Animation mit JLayeredPane? AWT, Swing, JavaFX & SWT 8
T JLayeredPane in JScrollBox AWT, Swing, JavaFX & SWT 2
GUI-Programmer Swing Problem mit JLayeredPane AWT, Swing, JavaFX & SWT 2
M JLayeredPane mit JPanel im Vordergrund, Hintergrundelemente sperren AWT, Swing, JavaFX & SWT 7
G JPanel in JLayeredPane AWT, Swing, JavaFX & SWT 8
D Probleme mit MouseWheelListener und JLayeredPane in Applet AWT, Swing, JavaFX & SWT 2
G Swing JLayeredPane Schach AWT, Swing, JavaFX & SWT 7
K JLayeredPane Elemente auf gleicher Position AWT, Swing, JavaFX & SWT 7
R JLayeredPane - JPanel mit variabler Form AWT, Swing, JavaFX & SWT 4
J Layer von JLayeredPane unsichtbar durchsichtig in den Hintergrund AWT, Swing, JavaFX & SWT 5
J SWING Fenster mit mehreren JPanels (dank JLayeredPane) AWT, Swing, JavaFX & SWT 19
R Swing JLayeredPane - Wie JScrollPane einbauen? AWT, Swing, JavaFX & SWT 17
H Button auf Bild/ JLayeredPane in Jpanel AWT, Swing, JavaFX & SWT 15
G JLayeredPane moveToFront funktioniert nicht AWT, Swing, JavaFX & SWT 15
D jLayeredPane Ebenen mit dynamischer Größe AWT, Swing, JavaFX & SWT 2
B Ärger mit JLayeredPane :-( AWT, Swing, JavaFX & SWT 5
S JLayeredPane AWT, Swing, JavaFX & SWT 16
M JLayeredPane : Applet - Application AWT, Swing, JavaFX & SWT 4
V JLayeredPane wird nur 1x bezeichnet AWT, Swing, JavaFX & SWT 12
shiny_hair JLayeredPane - Wie funktioniert das mit den Layern? AWT, Swing, JavaFX & SWT 2
T JLayeredPane Problem - AWT und SWING Komponente AWT, Swing, JavaFX & SWT 6
M Scrollbare JLayeredPane AWT, Swing, JavaFX & SWT 2
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
G JPanel per Drag and Drop JButtons und Bilder ablegen AWT, Swing, JavaFX & SWT 1
AmsananKING ListView Drag And Drop AWT, Swing, JavaFX & SWT 0
AmsananKING Drag And Drop Filenames Inside A Listview AWT, Swing, JavaFX & SWT 1
DonBronson Java Graphics bewegbar machen (Drag&Drop) AWT, Swing, JavaFX & SWT 3
M Polygon per Drag&Drop verschieben AWT, Swing, JavaFX & SWT 26
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
N Drag and Drop Fenster AWT, Swing, JavaFX & SWT 11
F Drag&Drop mit Transparenter Farbe bei PNG AWT, Swing, JavaFX & SWT 0
D JavaFX Pane per Drag&Drop bewegen? AWT, Swing, JavaFX & SWT 2
L JavaFX Drag and Drop funktioniert nicht AWT, Swing, JavaFX & SWT 3
J Drag and Drop von eigenen Objekten AWT, Swing, JavaFX & SWT 3
J Drag and Drop eines Buttons AWT, Swing, JavaFX & SWT 0
T Swing Drag and Drop für JComponents AWT, Swing, JavaFX & SWT 1
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
F Drag und Drop AWT, Swing, JavaFX & SWT 0
M JavaFX Absoluter Fokus während drag Event AWT, Swing, JavaFX & SWT 10
L JavaFX JavaFX Chart Drag and Drop AWT, Swing, JavaFX & SWT 3
D JavaFX Drag&Drop mehrerer TreeViews oder TableViews AWT, Swing, JavaFX & SWT 1
P Drag & Drop zwischen Panels AWT, Swing, JavaFX & SWT 0
U Drag and Drop mit imageview AWT, Swing, JavaFX & SWT 0
U Drag and Drop imageviews AWT, Swing, JavaFX & SWT 8
D SteelSeries in Netbeans als Drag-and-Drop einbinden AWT, Swing, JavaFX & SWT 0
C JTable Drag and Drop von Zeilen innerhalb einer Table AWT, Swing, JavaFX & SWT 2
S Swing Update eine JTabelle nach einer Drag&Drop Operation AWT, Swing, JavaFX & SWT 0
S Swing Suche Drag & Drop Beispiele AWT, Swing, JavaFX & SWT 1
H Drag component out of window AWT, Swing, JavaFX & SWT 1
A Drag and Drop mit JAVAFX- Scenebuilder AWT, Swing, JavaFX & SWT 1
R Performance Drag and Drop & Timer AWT, Swing, JavaFX & SWT 3
R Drag and Drop Problem auf Jpanel AWT, Swing, JavaFX & SWT 2
N Swing JTable und Drag und Drop AWT, Swing, JavaFX & SWT 2
A Drag and Drop eigener Objekte AWT, Swing, JavaFX & SWT 7
C Drag and Drop (inventar) AWT, Swing, JavaFX & SWT 15
F Swing Drag and Drop in JTree aus verschiedenen Listen AWT, Swing, JavaFX & SWT 6
T Swing JButton per Drag&Drop verschieben AWT, Swing, JavaFX & SWT 5
Iron Monkey JFileChooser - Drag and Drop AWT, Swing, JavaFX & SWT 5
Iron Monkey Nach Drag & Drop die Datei auf Komponent darstellen AWT, Swing, JavaFX & SWT 2
M AWT Drag n Drop-Support für Component AWT, Swing, JavaFX & SWT 5
HaukeG Swing Drag & Drop in verschiedenen Varianten AWT, Swing, JavaFX & SWT 4
S Swing Drag&Drop mit TransferHandler und JPanels AWT, Swing, JavaFX & SWT 8
H Drag-Evente nach Container wechsel AWT, Swing, JavaFX & SWT 2
C Swing Simulation von Drag and Drop Events AWT, Swing, JavaFX & SWT 3
H Swing "Drag and Drop" eines JComponent über ein JPanel AWT, Swing, JavaFX & SWT 2
R Drag 'n Drop AWT, Swing, JavaFX & SWT 3
S Selektion bei Drag&Drop AWT, Swing, JavaFX & SWT 4
D Drag-Action: Innerhalb meiner View? AWT, Swing, JavaFX & SWT 3
C Swing Drag and Drop mit Objekten in einem Fenster. AWT, Swing, JavaFX & SWT 9
T SWT Drag&Drop: Eclipse FileTransfer mit Icons AWT, Swing, JavaFX & SWT 14
F Drag & Drop durch Verbindungslinien AWT, Swing, JavaFX & SWT 10
T Swing Drag and Drop - JLabels tauschen statt überschreiben AWT, Swing, JavaFX & SWT 11
S Drag and Drop über 2 Panels AWT, Swing, JavaFX & SWT 2
K JButtons innerhalb eines JPanels verschieben (DRAG&DROP) AWT, Swing, JavaFX & SWT 5
B Drag and Drop AWT, Swing, JavaFX & SWT 6
K Drag and Drop Workbench AWT, Swing, JavaFX & SWT 2
P SWT Eclipse Draw2D Drag and Drop (ruckelt) AWT, Swing, JavaFX & SWT 4
F SWT Drag and Drop im TreeViewer AWT, Swing, JavaFX & SWT 4
B Swing Drag&Drop mit Feedback (Image am Mauszeiger) AWT, Swing, JavaFX & SWT 7
Spin JFrame/ Frame Drag and Drop AWT, Swing, JavaFX & SWT 13
A TransferHandler & Drag n' Drop AWT, Swing, JavaFX & SWT 2
R Drag an Drop JTable Zelle AWT, Swing, JavaFX & SWT 6
D Drag & Drop - node.isRoot AWT, Swing, JavaFX & SWT 3
E Swing Drag n Drop Verschieben von Labels o.ä. AWT, Swing, JavaFX & SWT 10
S Drag wie bei JToolbar mit JPanel AWT, Swing, JavaFX & SWT 3
E Swing Beim Drag & Drop, Drag verbieten?! AWT, Swing, JavaFX & SWT 2
E JTree Autoscroll bei Drag and Drop AWT, Swing, JavaFX & SWT 4
F Swing Problem mit Drag&Drop in JTable AWT, Swing, JavaFX & SWT 4
C keine weiteren Events während Drag&Drop Operation möglich? AWT, Swing, JavaFX & SWT 5
E Drag&Drop zwischen 2 Listen AWT, Swing, JavaFX & SWT 5
0 Swing Drag n' Drop Bug wenn Source und Target gleiche Komponente? AWT, Swing, JavaFX & SWT 4
C Drag and Drop JPanel auf JPanel nach drop erneut verschieben? AWT, Swing, JavaFX & SWT 3
T Swing JInternal Frame Clippingfehler bei drag AWT, Swing, JavaFX & SWT 4
M Swing JTable Drag'n'Drop von Dateien AWT, Swing, JavaFX & SWT 3
M Drag and Drop: Quellfenster AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben