JPanels vergleichen

Status
Nicht offen für weitere Antworten.
M

Matthias86

Gast
Hallo,
ich möchte in meinem java programm sowas ähnliches wie eine drag and drop funktion realisieren, ich habe auch schon eine idee wie ich das machen kann nur funktionier meine if-Bedingung nicht so wie sie sollte. Das ganze sieht so aus, ich habe mehrere panel deren kinder am anfang unsichtbar sind. wenn nun ein panel gedraggt wird und auf einer splitpane released wird, sollen die kinder des panels sichtbar werden. dafür speicher ich das panel beim draggen in eiener variablen und mache dann beim mousereleased eine überprüfung. das ganze sieht so aus:
Code:
private void jPanel13MouseDragged(java.awt.event.MouseEvent evt) {
    draggedPanel = evt.getComponent();
}

private void jSplitPane3MouseReleased(java.awt.event.MouseEvent evt) {
   if(draggedPanel.equals(jPanel13)){
       bpmButtonTrigger = !bpmButtonTrigger;
       jButton3.setVisible(bpmButtonTrigger);
       bpmTrigger = !bpmTrigger;
       jPanel15.setVisible(bpmTrigger);
   }
}

wie gesagt funktioniert es nicht und ich denke dass es an der bedingung liegt. bin mir aber auch nicht sicher wie man panels auf gleichheit überprüfen kann. danke schon mal für die hilfe.
Gruß Matthias
 
M

Matthias86

Gast
Ich hab jetzt festgestellt, dass es nicht an der if Bedingung liegt, vielmehr wird das MouseReleased nicht erkannt. Kann mir jemand dabei weiterhelfen?
 

Ark

Top Contributor
Zeig doch bitte etwas mehr Code. ;) Und daneben guckst du dir noch mal die Definitionen von Schnittstelle und Signatur an.

Ark
 

André Uhres

Top Contributor
Wir können das lösen mit DragGestureListener und DropTarget. Beispiel:
Code:
/*
 * DndTest.java
 *
 */

import java.awt.*;
import java.awt.event.*;
import java.awt.datatransfer.*;
import java.awt.dnd.*;
import javax.swing.*;

public class DndTest extends JFrame implements DragGestureListener {

    private JPanel jPanel1, jPanel2, jPanel3, dragged;
    private JSplitPane jSplitPane1;
    private JButton bt2, bt3;

    public DndTest() {
        super("DndTest");
        initComponents();
        DragSource dragSource = DragSource.getDefaultDragSource();
        dragSource.createDefaultDragGestureRecognizer(jPanel2,
                DnDConstants.ACTION_MOVE, this);
        dragSource.createDefaultDragGestureRecognizer(jPanel3,
                DnDConstants.ACTION_MOVE, this);
        jSplitPane1.setDropTarget(new DropTarget() {

            @Override
            public synchronized void drop(DropTargetDropEvent dtde) {
                int x = (int) dtde.getLocation().getX();
                int d = jSplitPane1.getDividerLocation();
                JComponent parent = (JComponent) dragged.getParent();
                parent.remove(dragged);
                parent.revalidate();
                parent.repaint();
                if(dragged == jPanel2){
                    bt2.setVisible(true);
                }else{
                    bt3.setVisible(true);
                }
                if (x < d) {
                    jSplitPane1.setLeftComponent(dragged);
                } else {
                    jSplitPane1.setRightComponent(dragged);
                }
                super.drop(dtde);
            }
        });
    }

    private void initComponents() {
        jPanel1 = new JPanel();
        jPanel2 = new JPanel();
        jPanel3 = new JPanel();
        jSplitPane1 = new JSplitPane();
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jPanel1.setBackground(new Color(255, 0, 0));
        jPanel1.setPreferredSize(new Dimension(0, 150));
        jPanel2.setBackground(new Color(255, 255, 0));
        jPanel2.setPreferredSize(new Dimension(120, 120));
        jPanel2.addMouseListener(new MouseAdapter() {

            @Override
            public void mousePressed(MouseEvent evt) {
                dragged = jPanel2;
            }
        });
        jPanel1.add(jPanel2);
        jPanel3.setBackground(new Color(0, 0, 255));
        jPanel3.setPreferredSize(new Dimension(120, 120));
        jPanel3.addMouseListener(new MouseAdapter() {

            @Override
            public void mousePressed(MouseEvent evt) {
                dragged = jPanel3;
            }
        });
        jPanel1.add(jPanel3);
        bt2 = new JButton("bt2");
        bt2.setVisible(false);
        jPanel2.add(bt2);
        bt3 = new JButton("bt3");
        bt3.setVisible(false);
        jPanel3.add(bt3);
        getContentPane().add(jPanel1, BorderLayout.PAGE_START);
        getContentPane().add(jSplitPane1, BorderLayout.CENTER);
        setSize(400, 300);
        setLocationRelativeTo(null);
    }

    public void dragGestureRecognized(DragGestureEvent event) {
        event.startDrag(null, new StringSelection(""), null);
    }

    public static void main(final String[] args) {
        Runnable gui = new Runnable() {

            public void run() {
                new DndTest().setVisible(true);
            }
        };
        //GUI must start on EventDispatchThread:
        SwingUtilities.invokeLater(gui);
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E JPanels auf gleicher Höhe (Y-Achse) in einem FlowLayout platzieren Java Basics - Anfänger-Themen 7
M Probleme beim aktualisieren eines JPanels Java Basics - Anfänger-Themen 7
V Alle Komponenten eines JPanels Java Basics - Anfänger-Themen 14
L Threads Laufbild Erzeugen Problem mit Aktualisieren des JPanels Java Basics - Anfänger-Themen 2
W 2 JPanels in 2Klasse in einem JFrame zusammenfügen Java Basics - Anfänger-Themen 12
D Methoden Implementieren von einer Zoomfunktion innerhalb eines JPanels mit null-Layoutmanager Java Basics - Anfänger-Themen 1
N Probleme beim entfernen eines JPanels Java Basics - Anfänger-Themen 4
L "Graphik" JPanels übereinander legen Java Basics - Anfänger-Themen 5
M JPanels verschachteln Java Basics - Anfänger-Themen 23
J Cannot find Symbol Variable mit JPanels Java Basics - Anfänger-Themen 2
M dynamische JPanels/Component Java Basics - Anfänger-Themen 3
M Überschreiben von JPanels funktioniert nicht! Java Basics - Anfänger-Themen 9
U Neuzeichnen eines JPanels Java Basics - Anfänger-Themen 17
A Mehere JPanels und JLabels - Warum Fehler? Java Basics - Anfänger-Themen 5
G Gesamten clickCount mehrerer JPanels herausfinden Java Basics - Anfänger-Themen 5
A Matisse oder Java Problem: JPanels werden riesig ? Java Basics - Anfänger-Themen 3
B LayoutManager Anorden von verschiedenen JPanels Java Basics - Anfänger-Themen 5
Q ActionListener event bei JPanels Java Basics - Anfänger-Themen 5
P Schriftgröße eines JPanels ändern Java Basics - Anfänger-Themen 2
T JPanels austauschen? Java Basics - Anfänger-Themen 4
T Fehlermeldung beim Klonen eines JPanels Java Basics - Anfänger-Themen 8
W JPanels löschen und neu konstruieren Java Basics - Anfänger-Themen 4
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
J Array.list vergleichen Java Basics - Anfänger-Themen 1
M 3 Zahlen miteinander vergleichen Java Basics - Anfänger-Themen 18
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
W LocalDate vergleichen mit Equals? Java Basics - Anfänger-Themen 7
S mehrere TreeSets so speichern, dass man sie miteinander vergleichen kann Java Basics - Anfänger-Themen 1
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
S String mit Int input vergleichen Java Basics - Anfänger-Themen 5
S Den Minimumberechnen 2 codes vergleichen Java Basics - Anfänger-Themen 4
S Chars vergleichen ohne Betrachtung der Groß und Kleinschreibung Java Basics - Anfänger-Themen 7
S Aktuell beste Methode um zwei Bilder zu vergleichen..? Java Basics - Anfänger-Themen 1
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
districon Vergleichen von Objekten Java Basics - Anfänger-Themen 20
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
M Strings vergleichen Java Basics - Anfänger-Themen 10
J Zufallszahlen generieren und Werte vergleichen Java Basics - Anfänger-Themen 3
Stephan_kl Reihenwert-Berechnung, Ergebnis mit vorherigem Ergebnis vergleichen Java Basics - Anfänger-Themen 11
J Zwei Objekte vergleichen Java Basics - Anfänger-Themen 8
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
O String mit Character vergleichen Java Basics - Anfänger-Themen 3
S 2 Strings mit Equals vergleichen Java Basics - Anfänger-Themen 11
N 2D Arrays jedes xy vergleichen Java Basics - Anfänger-Themen 7
M Objekte mittels equals vergleichen Java Basics - Anfänger-Themen 14
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
D Vergleichen von Strings Java Basics - Anfänger-Themen 6
M Objekte miteinander vergleichen Java Basics - Anfänger-Themen 18
M Matrix Elemente vergleichen Java Basics - Anfänger-Themen 11
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
R String vergleichen Java Basics - Anfänger-Themen 59
S Vergleichen ob der Integer der benutzt eingeben werden soll überhaupt ein int ist Java Basics - Anfänger-Themen 1
C System.in.read() Boolsche Werte vergleichen Java Basics - Anfänger-Themen 8
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
J Strings untereinander in einer Liste vergleichen Java Basics - Anfänger-Themen 18
E Zahlen von einem Array mit zahlen von zweitem Array vergleichen Java Basics - Anfänger-Themen 27
A Suffix vergleichen Java Basics - Anfänger-Themen 2
L Erste Schritte Elemente zwei Schlangen vergleichen Java Basics - Anfänger-Themen 14
PaperHat Objekte in Array vergleichen Java Basics - Anfänger-Themen 9
F Input/Output 2 Textdateien mit einander vergleichen Java Basics - Anfänger-Themen 11
N Zwei Strings mit "==" vergleichen warum TRUE Java Basics - Anfänger-Themen 2
M String vergleichen Java Basics - Anfänger-Themen 5
T Datentypen Kann Java 2 verschiedene Datentypen vergleichen? Java Basics - Anfänger-Themen 2
S Array, Geburtsdatum, Vergleichen Java Basics - Anfänger-Themen 28
F JList Elemente mit Strings vergleichen Java Basics - Anfänger-Themen 12
L Variablen Versionsnummern vergleichen Java Basics - Anfänger-Themen 5
N Methoden int[]'s vergleichen Java Basics - Anfänger-Themen 4
N Methoden HashMap interne Werte miteinander vergleichen Java Basics - Anfänger-Themen 7
T JPasswordFielder vergleichen Java Basics - Anfänger-Themen 16
K Datentypen Einträge zweier Matrizen vergleichen Java Basics - Anfänger-Themen 4
M Objekt mit Hashmap vergleichen Java Basics - Anfänger-Themen 22
S Werte in Liste mit Nachfolger vergleichen Java Basics - Anfänger-Themen 5
M Erste Schritte Mehrere eingaben in einer Line vergleichen (if equals...) Java Basics - Anfänger-Themen 6
J Zahlensequenz mit einer anderen Sequenz vergleichen Java Basics - Anfänger-Themen 6
P String größer kleiner gleich vergleichen Java Basics - Anfänger-Themen 6
H Bubblesort-Zwei Integer auf Dekade vergleichen. Java Basics - Anfänger-Themen 6
J Methoden BinaryStrings vergleichen Java Basics - Anfänger-Themen 12
C arrey mit string vergleichen Java Basics - Anfänger-Themen 2
K Methoden Passwort Bestätigungsfeld mit Password vergleichen Java Basics - Anfänger-Themen 7
M Wortteile im String vergleichen Java Basics - Anfänger-Themen 2
L Rekursiv zwei Strings vergleichen Java Basics - Anfänger-Themen 3
J Algorithmus - Strings auf eigene Reihenfolge miteinander vergleichen Java Basics - Anfänger-Themen 4
C Große Zahlen vergleichen Java Basics - Anfänger-Themen 19
? Methoden Boolean Wert vergleichen und einlesen Java Basics - Anfänger-Themen 1
Korvinus Vergleichen von 2 csv-Dateien Java Basics - Anfänger-Themen 2
K Comparable - Objekte aus Array vergleichen und größtes auswählen Java Basics - Anfänger-Themen 1
G Passwort und Passwort wiederholen in if-Abfrage vergleichen Java Basics - Anfänger-Themen 15
JavaNewbie2.0 String vergleichen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben