Neuen JInternalFrame von JLabel "herunterziehen"

Tine2

Mitglied
Hallo,

ich möchte folgendes Szenario realisieren: Ich habe ein JLabel in einem Panel. Wenn ich nun auf das JLabel klicke, möchte ich einen neuen JInternalFrame erzeugen und diesen gleichzeitig vom Label "wegziehen". Dies kann man sich wie bei einem Kartenstapel vorstellen, ich klicke auf ein Kartenstapelsymbol (bei mir das Label), eine neue Karte (JInternalFrame) wird an dieser Stelle erstellt und ich kann sie dann wegziehen und woanders platzieren. Dabei soll die Maus nur einmal gedrückt werden, also dass beim Drücken der Maus die Karte erstellt wird, der Benutzer aber weiterhin auf der Maustaste bleibt und die Karte dann wegziehen kann ohne sie neu anklicken zu müssen.

Ich habe versucht, das mit den MousePressed und MouseReleased-Events zu implementieren, aber ich kriege es nicht hin, dass der JInternalFrame beim Erzeugen den Mausfokus erhält. Ich muss also einmal drücken zum Erstellen und dann den Frame erneut anklicken, um ihn woanders hinziehen zu können. Wenn ich das Erzeugen in das MouseReleased-Event packe, dann wird der Frame an der richtigen Stelle erzeugt, aber man sieht ihn eben erst, wenn man die Maus losgelassen hat. Er soll aber schon während des Ziehens sichtbar sein.

Ich hoffe ich habe mich verständlich ausgedrückt. ;) Hat jemand vielleicht einen Ratschlag für mich?
 

Kim Stebel

Bekanntes Mitglied
Zeig doch mal, was du schon versucht hast. Am besten an einem vereinfachten Beispiel.
Könntest du die Bewegung des neu erzeugten JInternalFrame nicht auch erreichen, ohne dass dieser den Fokus erhält?
 

Tine2

Mitglied
Hier mal ein bisschen vereinfachter Code von mir:

Java:
...
JLabel label = new JLabel("Von hier neuen Frame ziehen");
label.addMouseListener(new MouseListener() {
...
public void mousePressed(MouseEvent arg0) {
	Point p = ((JPanel)arg0.getSource()).getLocationOnScreen();
	createFrame(p);
...
});
...
hauptpanel.add(label,BorderLayout.SOUTH);
...
public void createFrame(Point p) {
        Point loc = new Point();
    	loc.setLocation(p.getX(), p.getY());
        MyInternalFrame frame = new MyInternalFrame();  //erbt von JInternalFrame
        frame.setLocation(loc);
        frame.setVisible(true);
        hauptPanel.add(frame);
        hauptPanel.repaint();
        try {
            frame.setSelected(true);
        } catch (java.beans.PropertyVetoException e) {}
}

Ich weiß nicht, ob ich die Bewegung auch erreichen kann, ohne dass der neue Frame den Fokus erhält. Wäre mir auch recht, mir geht es ja primär nur darum, dass ich ihn runterziehen und woanders platzieren kann, ohne dass ich nochmals klicken muss. (siehe meine Beschreibung im 1.Post)

Habe es auch schon hiermit versucht, allerdings auch ohne Erfolg:
Java:
 hauptPanel.getDesktopManager().activateFrame(frame)
 

slawaweis

Bekanntes Mitglied
dass das neue Frame sofort den Fokus bekommt ist keine gute Idee. Ohne es jetzt ausprobiert zu haben würde ich schätzen, dass dann die vorherige Komponente überhaupt keine Maus-Events mehr bekommt.

Ich vermute Du kennst das Interface MouseMotionListener noch nicht. Das ist für die Mausbewegungen zuständig. Das musst Du analog zu dem MouseListener registrieren. Der Algorithmus wäre dann:

1. mousePressed wird aufgerufen
2. es wird geprüft, ob die Maus im richtigen Bereich ist
3. entsprechendes Frame wird erstellt und angezeigt
4. wenn jetzt mouseDragged aufgerufen wird (und 2. und 3. erfühlt wurden) wird das Frame verschoben
5. wenn mouseReleased aufgerufen wird, wird der Fokus an das Frame übergeben

Slawa
 

Tine2

Mitglied
Also nach ein wenig rumprobieren hat es so funktioniert, vielen Dank für die Anregung!
Ich glaube ich denke einfach manchmal zu kompliziert ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Problem, neuen JInternalFrame zur Laufzeit anzuzeigen AWT, Swing, JavaFX & SWT 8
A Nach klick auf Button neuen Inhalt im gleichen Fenster AWT, Swing, JavaFX & SWT 3
J Swing Neuen Command für "show"? AWT, Swing, JavaFX & SWT 2
C Swing JList zeigt keine neuen Einträge an AWT, Swing, JavaFX & SWT 1
F neuen Menüpunkt in jcombobox einfügen AWT, Swing, JavaFX & SWT 1
Z AWT JLabel setzt kein neuen Text AWT, Swing, JavaFX & SWT 6
O Neuen JFrame öffnen und alten schließen AWT, Swing, JavaFX & SWT 7
W Bei Button-klick neuen button in array hinzufügen AWT, Swing, JavaFX & SWT 7
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
F JTabbedPane mit Button zum Hinzufügen eines neuen Tabs AWT, Swing, JavaFX & SWT 6
R SWT TreeViewer neuen Input setzen AWT, Swing, JavaFX & SWT 3
T JTabbedPane - neuen Tab zwischen zwei anderen Tabs hinzufügen AWT, Swing, JavaFX & SWT 2
Ollek IndexOutOfBoundsException bei neuen Daten in JTable AWT, Swing, JavaFX & SWT 13
M PropertyChangeListener - JTable bei neuen Objekten updaten? AWT, Swing, JavaFX & SWT 3
D Swing FileChooser mit einem neuen Rootordner AWT, Swing, JavaFX & SWT 6
D Aufruf neuer Klasse ohne Erzeugung eines neuen Fensters AWT, Swing, JavaFX & SWT 3
E Applet Neuen Tab aus Applet öffnen AWT, Swing, JavaFX & SWT 3
Ollek Realisierung: JTable zur Laufzeit mit neuen Daten füllen AWT, Swing, JavaFX & SWT 3
O Swing es können keine neuen Labels hinzufügt werden während der Timer läuft AWT, Swing, JavaFX & SWT 14
N Neuen Kunden anlegen AWT, Swing, JavaFX & SWT 26
R SWT Statusmeldung im neuen Fenster blockiert aufrufendes Fenster AWT, Swing, JavaFX & SWT 2
G JFile Chooser "Buttons" wie Neuen Ordner erstellen AWT, Swing, JavaFX & SWT 3
S BufferedImage & Scaling: Altes Problem im neuen Gewand AWT, Swing, JavaFX & SWT 2
G JList Neuen Eintrag sofort anzeigen AWT, Swing, JavaFX & SWT 10
M Focus beim öffnen eines neuen JFrames AWT, Swing, JavaFX & SWT 6
D JButton einen neuen ImageIcon setzen? AWT, Swing, JavaFX & SWT 2
G Screen nach Auswahl schließen und neuen öffnen?wie mach ichs AWT, Swing, JavaFX & SWT 8
O Brauche ich einen neuen Frame? AWT, Swing, JavaFX & SWT 2
H JTree nach setzen eines neuen TreeModels aufklappen AWT, Swing, JavaFX & SWT 2
D JInternalFrame wechselt Position beim ersten Click AWT, Swing, JavaFX & SWT 0
J Mehrere JInternalFrame; GetValues AWT, Swing, JavaFX & SWT 1
L LookAndFeel JInternalFrame aussehen isSelected() true vs false AWT, Swing, JavaFX & SWT 0
X JInternalFrame vor Java2D-Zeichnung langsam bzw. Gui friert ein AWT, Swing, JavaFX & SWT 1
G Swing JInternalFrame AWT, Swing, JavaFX & SWT 0
R Custome TitlePane JInternalFrame - ControlButton AWT, Swing, JavaFX & SWT 2
B JInternalFrame Focus setzten geht nicht AWT, Swing, JavaFX & SWT 2
J Swing JInternalFrame modal setzen? AWT, Swing, JavaFX & SWT 13
J Swing JInternalFrame schließen ändern? AWT, Swing, JavaFX & SWT 7
J Swing Fokus JInternalFrame fehlerhaft AWT, Swing, JavaFX & SWT 4
G JInternalframe geöffnet oder nicht? AWT, Swing, JavaFX & SWT 4
G Swing und MDI mit JInternalFrame AWT, Swing, JavaFX & SWT 11
H Swing JInternalFrame, JDesktopPane und ein BorderLayout AWT, Swing, JavaFX & SWT 2
R Problem beim Anzeigen von Bildern auf JInternalFrame AWT, Swing, JavaFX & SWT 6
eskimo328 Java6 Methode in Java5 verwenden (memory leak JInternalFrame) AWT, Swing, JavaFX & SWT 4
A Swing getInsets() JInternalFrame AWT, Swing, JavaFX & SWT 2
R Swing JInternalFrame Opaque AWT, Swing, JavaFX & SWT 6
M JInternalFrame - Handhabung? AWT, Swing, JavaFX & SWT 5
algorismi JInternalframe Icon AWT, Swing, JavaFX & SWT 14
S JInternalFrame oder JTextArea neu laden AWT, Swing, JavaFX & SWT 2
V JInternalFrame wird überzeichnet AWT, Swing, JavaFX & SWT 8
T JInternalframe auf DropTarget droppen? AWT, Swing, JavaFX & SWT 7
O Swing JInternalFrame komplett neu laden AWT, Swing, JavaFX & SWT 3
B JInternalFrame - Maximieren AWT, Swing, JavaFX & SWT 11
X Grafikfehler mit JInternalFrame (Überlagerungen) AWT, Swing, JavaFX & SWT 2
B Swing Image als Hintergrund im JInternalFrame - Problem AWT, Swing, JavaFX & SWT 3
J Swing JInternalFrame - mit DesktopManager maximieren AWT, Swing, JavaFX & SWT 3
J Swing JInternalFrame - Bug: getDesktopManager.deiconify(...) AWT, Swing, JavaFX & SWT 2
W JInternalFrame + JList Problem AWT, Swing, JavaFX & SWT 5
H Swing JInternalFrame aus JFrame ziehen AWT, Swing, JavaFX & SWT 6
N JInternalFrame minimieren und schließen AWT, Swing, JavaFX & SWT 2
T JFrame als JInternalFrame darstellen AWT, Swing, JavaFX & SWT 2
K Swing JInternalFrame und LayoutManager AWT, Swing, JavaFX & SWT 6
C Zeichnen über JInternalFrame der ICEpdf-Dokument anzeigt AWT, Swing, JavaFX & SWT 3
T Aussehen von JFrame bzw JInternalFrame ändern... wie? AWT, Swing, JavaFX & SWT 23
J Swing JInternalFrame AWT, Swing, JavaFX & SWT 5
S Swing JInternalFrame: Mehrere Probleme AWT, Swing, JavaFX & SWT 3
S Swing JInternalFrame: Titelleiste entfernen AWT, Swing, JavaFX & SWT 5
R Swing JFrame oder JInternalFrame? AWT, Swing, JavaFX & SWT 13
B JInternalFrame resize event AWT, Swing, JavaFX & SWT 2
X JInternalFrame AWT, Swing, JavaFX & SWT 3
G JInternalFrame AWT, Swing, JavaFX & SWT 2
W JInternalFrame alleine funktionsfähig AWT, Swing, JavaFX & SWT 5
A JSplitPane in JInternalFrame AWT, Swing, JavaFX & SWT 2
G JInternalFrame und beinhaltende Komponenten 'abschalten' AWT, Swing, JavaFX & SWT 2
K Tab von JPanel nach JInternalFrame AWT, Swing, JavaFX & SWT 2
M JInternalFrame Titel sichtbar setzen AWT, Swing, JavaFX & SWT 2
K JInternalFrame - schwarzer Bildschirm AWT, Swing, JavaFX & SWT 2
M JInternalFrame ohne Titelbalken AWT, Swing, JavaFX & SWT 5
A erneutes Öffnen jInternalFrame: illegal component position AWT, Swing, JavaFX & SWT 4
S Kontextmenu im JInternalFrame unterdrücken AWT, Swing, JavaFX & SWT 5
G Layerproblem JInternalFrame AWT, Swing, JavaFX & SWT 2
X Externe Anwendungen in JInternalframe starten. AWT, Swing, JavaFX & SWT 5
T JInternalFrame Vollbild Problem AWT, Swing, JavaFX & SWT 4
X Relative positionierung in einem JInternalFrame AWT, Swing, JavaFX & SWT 3
J JInternalFrame "schimmert" durch AWT, Swing, JavaFX & SWT 4
D JInternalFrame iconified Position nach parent-resize AWT, Swing, JavaFX & SWT 2
DeeDee0815 JInternalFrame in JScrollpane AWT, Swing, JavaFX & SWT 4
C Hilfe bei JInternalFrame AWT, Swing, JavaFX & SWT 6
J JInternalFrame überlagert/unterlagert anderen Elementen AWT, Swing, JavaFX & SWT 2
DeeDee0815 setContentPane()-Problem bei JInternalFrame AWT, Swing, JavaFX & SWT 2
W Unterdrückung von FrameIcon-Funktion im JInternalFrame AWT, Swing, JavaFX & SWT 5
F JInternalFrame Look and Feel AWT, Swing, JavaFX & SWT 3
W Realisierung Gradient in der Titlebar JInternalFrame AWT, Swing, JavaFX & SWT 7
T JInternalFrame Konflikt mit LayoutManager AWT, Swing, JavaFX & SWT 5
T JInternalFrame und Iconified AWT, Swing, JavaFX & SWT 10
C Tooltip nur anzeigen, wenn JInternalFrame minimiert AWT, Swing, JavaFX & SWT 3
M JInternalFrame mouseEntered/mouseExited AWT, Swing, JavaFX & SWT 8
S Eine Art JInternalFrame in JSplitPane AWT, Swing, JavaFX & SWT 3
G Problem bei JTable in JInternalFrame AWT, Swing, JavaFX & SWT 4
megachucky JInternalFrame modal setzen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben