EventListener verschachtekt hinzufügen

O

Ondine

Gast
Moin,

Ich versuche gerade folgendes:

Java:
final MouseMotionListener l = new MouseInputAdapter(){
        	@Override
            public void mouseMoved(MouseEvent f) {
        		System.out.println("Fehler");
        		int x2 = f.getX();
        		int y2 = f.getY();
        		translate_x = x2 - x1;
        		translate_y = y2 - y1;
        	}
        };
    	jPanel1.addMouseListener(new MouseAdapter(){
    		@Override
            public void mousePressed(MouseEvent e) {
    			x1 = e.getX();
                y1 = e.getY();
                System.out.println("Ja!");
                jPanel1.addMouseMotionListener(l);
    		}
    		@Override
            public void mouseReleased(MouseEvent e) {
    			System.out.println("Nein");
    			jPanel1.removeMouseMotionListener(l);
    		}
    	});

Nur das funktioniert einfach nicht. Der Listener l wird NICHT hinzugefügt. Ich hoffe es kann mir hier jemand weiterhelfen.
 

Antoras

Top Contributor
Der MML wird schon hinzugefügt, die genaue Fehlerursache kann ich dir aber trotzdem nicht sagen. Ich vermute, dass sie irgendwo im Event-Handling versteckt ist.
Ich kann dir aber die Lösung deines Problems geben: Der MML besitzt die Methode
Code:
mouseDragged
, die nur dann aufgerufen wird wenn eine Maustaste gedrückt ist und die Maus dann auch bewegt wird. Sie sollte genau das machen was du benötigst.
 
O

Ondine

Gast
Also ich bräuchte die Koordinaten von mousePressed und mouseReleased...
Da wüsste ich gerade nciht wie man beide koordinaten von mouseDragged bekommt. Achjaaa. Nein, doch nicht.
Ich möchte mit der Maus ein Bild verschieben können, also während man die maus bewegt schon die repaint() methode aufrufen. Und dazu brauche ich ein permanentes update der Mauskoordinaten.
 

Antoras

Top Contributor
Das ist doch alles gar kein Problem:

Java:
import java.awt.AlphaComposite;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.event.MouseInputAdapter;


public class ListenerTest {
	
	int x, y;
	final JPanel p;
	
	public ListenerTest() throws IOException {
		final JFrame f = new JFrame();
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(new Dimension(200, 200));
		
		// um das Bild aus einem Jar-Archiv zu laden
		// final URL path = getClass().getClassLoader().getResource("pic.jpg");
		
		// um das Bild von der IDE aus zu laden
		final File path = new File("pic.jpg");
		final BufferedImage i = createResizedCopy(ImageIO.read(path), 100, 100, false);
		
		p = new JPanel() {
			@Override
			protected void paintComponent(final Graphics g) {
				super.paintComponent(g);
				g.drawImage(i, x, y, null);
			}
		};
		p.addMouseMotionListener(new MouseInputAdapter() {
			@Override
			public void mouseDragged(final MouseEvent e) {
				updatePicPosition(e);
			}
		});
		p.addMouseListener(new MouseAdapter() {
			@Override
			public void mousePressed(final MouseEvent e) {
				updatePicPosition(e);
				// das MouseEvent steht frei zur Verfügung
			}
			@Override
			public void mouseReleased(final MouseEvent e) {
				// das MouseEvent steht frei zur Verfügung
			}
		});
		f.add(p);
		f.setVisible(true);
	}
	
	private void updatePicPosition(final MouseEvent e) {
		x = e.getX();
		y = e.getY();
		p.repaint();
	}
	
	private BufferedImage createResizedCopy(final Image originalImage, final int scaledWidth, final int scaledHeight, final boolean preserveAlpha) {
		final int imageType = preserveAlpha ? BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB;
		final BufferedImage scaledBI = new BufferedImage(scaledWidth, scaledHeight, imageType);
		final Graphics2D g = scaledBI.createGraphics();
		if (preserveAlpha) {
			g.setComposite(AlphaComposite.Src);
		}
		g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null);
		g.dispose();
		return scaledBI;
	}
	
	public static void main(final String... args) throws IOException {
		new ListenerTest();
	}
}
Bild ist verschiebbar und auf die Koordinaten hast du in
Code:
mousePressed/mouseReleased
auch Zugriff.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B SWT Anonyme Eventlistener wegräumen? AWT, Swing, JavaFX & SWT 4
A EventListener für JFormattedTextField AWT, Swing, JavaFX & SWT 6
B GUI Aktualisierung aus/und eventListener AWT, Swing, JavaFX & SWT 3
D JTabbedPane mit Eventlistener versehen? AWT, Swing, JavaFX & SWT 9
S Verständnisfrage EventListener AWT, Swing, JavaFX & SWT 6
multiholle MVC und EventListener AWT, Swing, JavaFX & SWT 4
S Alle EventListener einer JComponent abfragen? AWT, Swing, JavaFX & SWT 3
P EventListener AWT, Swing, JavaFX & SWT 3
G JList, einzelne Strings hinzufügen AWT, Swing, JavaFX & SWT 9
F Bilder zu ausführbarer Jar-Datei hinzufügen AWT, Swing, JavaFX & SWT 5
K Tabelle zu Datenbank hinzufügen / Apache Derby AWT, Swing, JavaFX & SWT 7
Apfelbaum2005 Swing JFrame mehrere JPanels mit unterschiedlichen Formen hinzufügen AWT, Swing, JavaFX & SWT 1
N AWT JPanel zu Jframe hinzufügen AWT, Swing, JavaFX & SWT 2
L paintComponent in Panel eines Borderlayouts hinzufügen AWT, Swing, JavaFX & SWT 3
A JavaFX exportierte Jar ohne beim starten die Libs hinzufügen? AWT, Swing, JavaFX & SWT 2
P Swing jxmapviewer hinzufügen/nutzen funktioniert nicht AWT, Swing, JavaFX & SWT 7
D ObservableList Werte hinzufügen AWT, Swing, JavaFX & SWT 7
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
L Swing Wert vom Textfield in Array List hinzufügen AWT, Swing, JavaFX & SWT 2
N Einer TextArea ein ScrollPane hinzufügen AWT, Swing, JavaFX & SWT 8
J JButton Icon hinzufügen AWT, Swing, JavaFX & SWT 5
M TableView Zeile hinzufügen AWT, Swing, JavaFX & SWT 5
K JLabel mit Bilder im nicht initialisierten JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
B Mit der ChoiceBox-Auswahl Textfelder hinzufügen AWT, Swing, JavaFX & SWT 18
dereki2000 Swing JFrame nah hinzufügen von Komponenten akualisieren. AWT, Swing, JavaFX & SWT 2
P JPanel KeyListener hinzufügen AWT, Swing, JavaFX & SWT 8
cool_brivk24 BufferedImage einem ClickEvent hinzufügen AWT, Swing, JavaFX & SWT 13
L ActionListener zu Button in Panel hinzufügen AWT, Swing, JavaFX & SWT 10
P Swing Mehrere JPanels auf ein JFrame hinzufügen? AWT, Swing, JavaFX & SWT 2
ralfb1105 jTextArea Scrollbar hinzufügen - mit Jigloo erstellt AWT, Swing, JavaFX & SWT 7
Q AWT TicTacToe Image auf Button hinzufügen AWT, Swing, JavaFX & SWT 5
J JFrame Panel hinzufügen AWT, Swing, JavaFX & SWT 10
Wurstsemmel SWT MenuItem dynamisch hinzufügen AWT, Swing, JavaFX & SWT 2
F JavaFX In SampleController ObservableList zu ListView hinzufügen AWT, Swing, JavaFX & SWT 0
MaxG. Swing Swing Komponenten zur Laufzeit hinzufügen AWT, Swing, JavaFX & SWT 2
MaxG. Swing JMenu einen Listener Hinzufügen AWT, Swing, JavaFX & SWT 25
Hijo2006 Tabsheets hinzufügen AWT, Swing, JavaFX & SWT 4
Ghostman1711 Hinzufügen ausgewählter Dateinen des Filechoosers zu einem JTable AWT, Swing, JavaFX & SWT 9
N Swing Wie Programm strukturieren? (Dynamisch Komponenten hinzufügen) AWT, Swing, JavaFX & SWT 1
J JavaFX Tableview Daten hinzufügen aus anderer Klasse AWT, Swing, JavaFX & SWT 7
J Tableview Daten hinzufügen und aktualisieren AWT, Swing, JavaFX & SWT 5
J Panel auf Frame löschen und neues Panel Hinzufügen AWT, Swing, JavaFX & SWT 4
M Buttons in JSplitPane hinzufügen AWT, Swing, JavaFX & SWT 6
K JavaFX NullpointerEx, kann nichts zur Pane hinzufügen AWT, Swing, JavaFX & SWT 10
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
T Swing JTable Zeile mit ausgelesenen Werten mit Hilfe von einem Button hinzufügen AWT, Swing, JavaFX & SWT 1
A JavaFX Scene Builder eigene Klasse hinzufügen AWT, Swing, JavaFX & SWT 2
F Swing Image einem Button hinzufügen AWT, Swing, JavaFX & SWT 5
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
S Grafik in einer Klassen einfügen/hinzufügen AWT, Swing, JavaFX & SWT 1
P JavaFX TableView Item hinzufügen AWT, Swing, JavaFX & SWT 20
W Bei Button-klick neuen button in array hinzufügen AWT, Swing, JavaFX & SWT 7
X AWT Graphics2D zum LWJGL Display hinzufügen aber wie? AWT, Swing, JavaFX & SWT 4
F JTabbedPane mit Button zum Hinzufügen eines neuen Tabs AWT, Swing, JavaFX & SWT 6
V kann ich in einer Klasse stage und scene deklarieren, aber in anderen Klassen Inhalte hinzufügen ? AWT, Swing, JavaFX & SWT 5
K Swing JList - Element richtig hinzufügen AWT, Swing, JavaFX & SWT 4
L Swing Button in GridBackLayout positionieren und TitleBorder pro Spalte hinzufügen AWT, Swing, JavaFX & SWT 9
X Java Komponenten jeder Zeit hinzufügen können AWT, Swing, JavaFX & SWT 3
K SWT TitleAreaDialog - SelectionListener zur Message hinzufügen AWT, Swing, JavaFX & SWT 3
A Text (String) zu einer Box hinzufügen AWT, Swing, JavaFX & SWT 16
M JTextArea Zeile hinzufügen AWT, Swing, JavaFX & SWT 4
P Text in JPanel hinzufügen AWT, Swing, JavaFX & SWT 2
M Im JPanel klickbare Felder hinzufügen AWT, Swing, JavaFX & SWT 2
B Swing Problem: Horizontaler Scrollbalken in JComboBox hinzufügen AWT, Swing, JavaFX & SWT 4
B Buttons entfernen / hinzufügen AWT, Swing, JavaFX & SWT 5
T JTabbedPane - neuen Tab zwischen zwei anderen Tabs hinzufügen AWT, Swing, JavaFX & SWT 2
X JScrollPane zu JTable hinzufügen AWT, Swing, JavaFX & SWT 16
E JFreeChart in einer dynamischen Aufzeichnung neue Serien hinzufügen? AWT, Swing, JavaFX & SWT 7
D JTable Aktualisierung nach hinzufügen eines Datensatzes AWT, Swing, JavaFX & SWT 7
T MouseListener an Ecken von Polygonen hinzufügen AWT, Swing, JavaFX & SWT 5
V Eclipse View Right-Click Menu hinzufügen AWT, Swing, JavaFX & SWT 2
C Swing NullPointerException beim Hinzufügen von Checkboxes in eine ArrayList AWT, Swing, JavaFX & SWT 5
R Eine Instanz von JPanel mehrfach hinzufügen AWT, Swing, JavaFX & SWT 2
F Panels über buttons zu anderen Panels hinzufügen AWT, Swing, JavaFX & SWT 2
E Übergebenem JTree Blätter hinzufügen AWT, Swing, JavaFX & SWT 2
Q AWT Choice ein Zeichen hinzufügen AWT, Swing, JavaFX & SWT 4
R JPanel von JScrollPane entfernen und hinzufügen AWT, Swing, JavaFX & SWT 3
E Adressleiste zum Browserfenster hinzufügen? AWT, Swing, JavaFX & SWT 4
S JPanel in den Container hinzufügen AWT, Swing, JavaFX & SWT 3
T Elemente zu JList dynamisch hinzufügen AWT, Swing, JavaFX & SWT 4
E Swing Verzögerung beim Hinzufügen / Ändern von Swingkomponenten AWT, Swing, JavaFX & SWT 3
H Swing HTML in einem JEditorPane zeilenweise hinzufügen ohne Inhalt jedes Mal neu zu laden AWT, Swing, JavaFX & SWT 4
H Zeile in DefaultTableModel hinzufügen, ProgressBar AWT, Swing, JavaFX & SWT 4
L SWT Filter zur TreeViewer hinzufügen AWT, Swing, JavaFX & SWT 9
H Ellipse2d zum path hinzufügen AWT, Swing, JavaFX & SWT 4
K JList-Probleme beim Hinzufügen von Elementen AWT, Swing, JavaFX & SWT 3
N zwei JComponente gleichzeitig auf JPanel hinzufügen AWT, Swing, JavaFX & SWT 22
N JPanel zum JFrame hinzufügen AWT, Swing, JavaFX & SWT 9
B Swing Dynamisch Elemente in JScrollPane hinzufügen AWT, Swing, JavaFX & SWT 6
H Swing Register (jTabbedPane) dynamisch hinzufügen? AWT, Swing, JavaFX & SWT 7
P Swing JEditorPane mit HTMLDocument - Text hinzufügen AWT, Swing, JavaFX & SWT 2
Tobse Swing JList elemente hinzufügen AWT, Swing, JavaFX & SWT 4
A Komponente zur Laufzeit hinzufügen und RICHTIG anzeigen AWT, Swing, JavaFX & SWT 3
A JTextPane: Text hinzufügen AWT, Swing, JavaFX & SWT 9
R JPanel sehr große JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
U Dynamische Panel hinzufügen AWT, Swing, JavaFX & SWT 6
H Swing JTree hinzufügen AWT, Swing, JavaFX & SWT 5
R KeyListener - welcher Komponente hinzufügen AWT, Swing, JavaFX & SWT 5
D Swing JLIST: Hinzufügen neuer Informationen aus Dateistream AWT, Swing, JavaFX & SWT 2
B Swing Problem beim Elemente zu JList hinzufügen AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben