[Java] Paint over een JPanel

Status
Niet open voor verdere reacties.

niekfct

Terugkerende gebruiker
Lid geworden
19 jul 2006
Berichten
1.563
Hoi,

Stel ik heb een JFrame, met 2 JPanels. Op de JPanels staan vakjes gepaint (public void paint(Graphics g). Nu wil ik, als ik met de muis een vakje van de ene naar de andere panel sleep, dat deze de muis volgt. Simpel gezegd..

Hoe moet ik dit doen? Ik zoek dus eigenlijk iets wat over de JPanels ligt waarop ik kan tekenen. Als ik nog een JPanel (verder: jp1) aanmaak, de andere 2 JPanels hierop leg, en op jp1 ga tekenen, zijn de tekeningen op de 2 andere JPanels niet meer zichtbaar :confused:

Ik hoop dat het verhaaltje een beetje duidelijk is ;)

Alvast bedankt,
Niek
 

Bijlagen

Laatst bewerkt:
*bump* :p

Heeft iemand een idee? Waar ik dus aan zat te denken is zoiets, maar ik weet niet hoe ik dit kan realiseren:
attachment.php

Bij '1' klik ik op het vakje, komt het vakje 'los' van de panel, en kan ik hem vrij bewegen over het hele venster ('2'). Bij '3' laat ik de muisknop los, en komt het vakje op de linker JPanel te zitten.

Nog even voor de duidelijkheid: Het achterste vak(meest links) is het venster, de middelste vakken zijn de 2 JPanels, het voorste vak is het "tekenpanel" of hoe je het ook wil noemen.
 

Bijlagen

  • p2.jpg
    p2.jpg
    14,8 KB · Weergaven: 61
zie de originele java tutrials over drag-and-drop.
http://java.sun.com/docs/books/tutorial/uiswing/dnd/intro.html

Je rode vierkant moet je een JComponent van maken. Dit compent kan je dan weer voor je drag and drop gebruiken. Maar dit is zeker niet eenvoudig.

Je kan ook zelf je drag&drop schrijven. Je panel's moeten dan een mouse listener krijgen en je moet zelf de muis positie volgen en je rode vierkant op de muis positie gaan teken, stuk eenvoudiger alleen niet zo mooi uitbreidbaar.

succes
 
Het werkt, heb zelf de drag&drop geschreven, en de fout zat em in het volgende

Code:
public void paint(Graphics g)
{
    super.paint(g);

     ....
}

De super was ik dus vergeten, waardoor de rest niet meer werd getekend ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan