2 fragen

Clash

Erfahrenes Mitglied
1) wenn ich einen eigenen mauszeiger in einem JInternalFrame erstelle verschwindet der logischerweise wenn ich das fenster verlasse, wenn ich dann mit der maus wieder reingehe kommt der aber nicht wieder, warum? und wie kann ich das ändern?

2) ich baue grade einen editor, der aus rechteckfeldern bestehen soll. mit dem oben beschriebenen veränderten mauszeiger kann man dann die rechtecke anklicken und dann ändert sich das entsprechende feld. meine frage ist nun: wie implementiere ich diese rechtecke? ich habs mit JLabels versucht, allerdings ist die Größe der "Map" dynamisch (z.b 50x50) und ich kann den labels also keine namen geben um sie explizit anzusprechen. hat vielleicht einer ne idee wie man das umsetzen könnte? vielleicht irgendwie die mauskoordinaten mit den koordinaten des jeweiligen angeklickten JLabels vergleichen? aber wie stellt man fest an welchen koordinaten sich das JLabel befindet ?
help
 
Ich kann mich irren, aber evtl. kannst du auf dein JLabel einen MouseListener setzten und dort gibt es sowieso ein "OnMouseOver" ...
 
verwalte doch nen mehrdimensionales array mit referenzen auf die felder und wenn die grösse dyn. is dann sollte es nen Vector tun, wenn ich dich richtig verstanden hab...

als beispiel..

public class 4x4 extends JPanel {

private Vector(4,4) vec;
this.setLayout(new GridLayout(4,4));

public void add(JLabel label) {
add(label);
vec.add(label);
}
}

so in etwa sollte das gehn behaupte ich mal ;)
 
Zuletzt bearbeitet:
Ab Java 5:

for(JLabel label : vector) {

}

frühere JDK's :
for (Enumeration el = vector.elements(); el.hasMoreElements(); ) {
System.out.println((String)el.nextElement());
}

Und wenn du nicht alle Elemente durchlaufen willst:

public Object firstElement()
throws ArrayIndexOutOfBoundsException

public Object lastElement()
throws ArrayIndexOutOfBoundsException

public Object elementAt(int index)
throws ArrayIndexOutOfBoundsException
 
erstmal vielen dank für die hilfe
wie kann ich das abfragen des jeweiligen labels mittels mausklick verknüpfen? es soll das JLabel geändert werden, wenn man mit der maus draufklickt
 
ok ich habs hingekriegt:
hab das JLabel extended und da die koordinaten in dem 2dim array eingetragen. so kann man dann feststellen welches label man mit der maus angeklickt hat (man hat ja jetzt ein unterscheidungskriterium): jetzt kann man die Bilddaten ändern und das Fenster neu zeichen => veränderung wird sichtbar.
falls jemand interesse am ergebnis hat, ich kanns euch gerne per mail schicken
(dna.fan@gmx.de)
mfg clash
 
Zurück