Toon posts:

[java/swing]Borderlayout en component.getX()

Pagina: 1
Acties:

Verwijderd

Topicstarter
situatie:
code:
1
2
3
4
5
<contentpane layout="borderlayout">
   <panel constraints="CENTER">
       <label/>
   </panel>
</contentpane>


Dit is de hierarchische voorstelling.
Nu wil ik iets tekenen op de getX positie van het label:
Java:
1
2
3
int x = comp.getX();
int y = comp.getY();
g.drawImage(new ImageIcon("icons/Error.gif").getImage(),x-7,y-7,null);


Nu zijn er nog twee component die staan op "EAST" en "NORTH".

Het probleem is dat het icoon wordt getekend op de positie getX-de breedte van het East component en getY - hoogte van het North component 8)7

(Als ik de component in EAST en NORTH weglaat wordt het icoon WEL op de juiste plaats getekend).

Is dit een bug of doe ik iets verkeerd? Hoe kan ik dit omzijlen?
Wat ik kan doen is east component width erbij optellen maar ik denk niet dat dat de bedoeling is!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

waarom teken je het, maak je niet gewoon een label met een imageicon erin aan?

http://java.sun.com/j2se/...#JLabel(javax.swing.Icon)

[ Voor 3% gewijzigd door drm op 14-04-2005 13:34 ]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Omdat het in feite wordt "getekend" op GlassPane. Dit icoontje moet dienen als "overlayed" icoon.

Dit is een tip die ik hiervan heb gehaald:
http://weblogs.java.net/b...3/09/swing_hack_3_ov.html

Dit is wel irrelevant aan mijn probleem.

Verwijderd

Topicstarter
*kick*

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 05-05 11:52

Eelke Spaak

- Vlad -

Een glasspane is toch ook gewoon een container? Daar kan je dan toch net zo goed een JLabel aan toevoegen (met opaque = false)?

TheStreme - Share anything with anyone


Verwijderd

Topicstarter
ja maar dan kloppen de posities nog niet hé..
hoe komt het dat hij geen rekening lijkt te houden met die componenten die in EAST en NORTH staan?

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 05-05 11:52

Eelke Spaak

- Vlad -

Misschien kan je wat transparante non-widgets (JPanels of zo) toevoegen op de plaatsen waar in je gewone container (dus degene waar het glasspane overheen zit) normale widgets zitten. Dan zou je JLabel op de juiste manier ge-layout moeten worden.

TheStreme - Share anything with anyone

Pagina: 1