# Drag & Drop mit JTabbedPane



## Fatal Error (20. Mai 2006)

Hallo java-forum.org comunity!!

Ich habe in einem JFame mehrere JInternalFrames reingepackt und alle KindchenFenster mit 2 Tabs (JTabbedPane) versehen. Jetzt würde ich gerne die einzelnen Tabs von einem JInternalFrame in ein anderes verschieben.
Ich weiß das ich den Tab dann aus dem einen Fenster removen muss und im anderen adden,doch ich habe keine ahnung wie ich das mit dem transferhandler und so machen soll. Ich werde aus dem Java - Tutorial einfach nicht schlau. Das einzige was ich weiß (oder glaube zu wissen) ist das man nicht die tabs sondern die panels mittels drag and drop verschieben muss. 





> Bei einer JTabbedPane kann man Drag'n'Drop nur mit dem ersten Panel verwenden: soll dies auch auf anderen Panels geschehen, so muss man JTabbedPane ableiten und findComponentAt überschreiben.


 steht auch noch dort.

Kann mir bitte jemand damit helfen?
Danke schonmal im voraus!


----------



## André Uhres (20. Mai 2006)

http://www.javafr.com/codes/JTABBEDPANE-FERMABLE-AVEC-GESTION-DRAG-AND-DROP_37367.aspx
-->Télécharger le ZIP
Ist Freeware, man muss nur ein Konto anlegen.

```
JMyTabbedPane tp1 = new JMyTabbedPane(true);//true=mit DnD
        JPanel p1 = new JPanel();
        tp1.addTab("Tab1", p1);
```


----------



## Fatal Error (20. Mai 2006)

Das war ja was: ich versteh kein einziges Wort französisch und hab ne Stunde gebraucht mich dort zu registrieren...

Aber es funktioniert!!
PS: ich hab das jetzt noch nicht mit befüllten JPanels gemacht, und es kommt ne exception beim verschieben...is das normal? oder funktioniert das dann trotzdem mit befüllten panels?


----------



## André Uhres (20. Mai 2006)

Fatal Error hat gesagt.:
			
		

> ..es kommt ne exception beim verschieben...is das normal? oder funktioniert das dann trotzdem mit befüllten panels?


Nur wenn ich die Tabs mit Icon (zum Schliessen) mache, dann funktioniert das DnD nicht mehr richtig:
es kommen Exceptions und die Icons gehen verloren.

Aber mit normalen Tabs (ohne Icon) funktioniert das DnD und es kommt keine Exception.


----------



## Fatal Error (20. Mai 2006)

Hallo nochmal

Warscheinlich kamen die Exceptions weil ich drei tabs geaddet hab und dazu ein String[] und ein JPanel[], ich glaub es war eh eine ArrayIndexOutOfBoundsException.
ich habe eh nicht vor icons zu den tabbs zu adden.
Ein Problem hab ich noch: Wenn ich ein Tab verschiebe und da wo ich es dann einfüge kommt das icon was mir anzeigt das ich das hier nicht reingeben kann, aber wenn ich die maus loslasse gehts. Wie kann ich da den MausZeiger anpassen?

Danke nochmal


----------



## André Uhres (20. Mai 2006)

Fatal Error hat gesagt.:
			
		

> ...Wenn ich ein Tab verschiebe und da wo ich es dann einfüge kommt das icon was mir anzeigt
> das ich das hier nicht reingeben kann, aber wenn ich die maus loslasse gehts.
> Wie kann ich da den MausZeiger anpassen?..




```
...
public class TabbedDragSource implements DragSourceListener {
...
    public void dragOver(DragSourceDragEvent dsde) {
...
            
            if (!(c instanceof JTabbedPane)){
                dsde.getDragSourceContext().setCursor(DragSource.DefaultMoveDrop);//<----------
            } else{
                dsde.getDragSourceContext().setCursor(DragSource.DefaultMoveDrop);
            }
        }
    }
...
}
```
Ist nicht ganz wie es sein soll, aber ich hab noch keine bessere Lösung.


----------



## Fatal Error (20. Mai 2006)

Danke dir vielmals, jetzt ises so wie ich wollte!


----------

