# Positionen von JComponents aus GUI auslesen



## JavaLearner (18. Apr 2005)

Hallo,

ich würde gerne (fertige) grafische Oberflächen (JPanel oder JFrame) einlesen können, um diese dann nach ergonomischen Gesichtspunkten zu optimieren. Hierfür ist es aber erforderlich, die genaue Position der JComponents auslesen zu können und nach Möglichkeit ihren Typ (JCombobox, JLabel,...) ebenfalls bestimmen zu können.

Ich hoffe, dass ich mich verständlich ausgedrückt habe und ihr mir weiterhelfen könnt.

Vielen Dank

Der JavaLearner


----------



## Sky (18. Apr 2005)

Wie soll das _"nach ergonomischen Gesichtspunkten zu optimieren"_ gehen? Per 'drag'n'drop' oder willst Du die x-y-Werte ändern??


----------



## JavaLearner (18. Apr 2005)

Das Programm soll die x-x-Werte der Componenten ändern und sie z.B: aneinandern ausrichten.


----------



## JavaLearner (18. Apr 2005)

Sorry, ich meinte natürlich x-y-Werte


----------



## Sky (18. Apr 2005)

Also auslesen aus deiner Klasse geht so:

```
Class c = ...; // deine fertige GUI-Klasse
Field f[] = c.getDeclaredFields(); // Alle Felder der Klasse auslesen
for( int i = 0; i < f.length; i++ ) {
  // Prüfen ob JComponent oder davon abgeleitet
  if ( JComponent.class.isAssignableFrom(f[i].getType()) ) {
    // mach irgendwas damit...        
    // ...
  }
}
```


----------



## JavaLearner (18. Apr 2005)

ok, ich glaube, ich hab was gefunden. Die Klasse "Container" stellt die Methode "getComponents()" bereit welche ein Array der Componenten liefert. Dann sollte es irgendwie klappen.

Gruß JavaLearner


----------



## JavaLearner (18. Apr 2005)

Hallo sky80!

Vielen Dank für deine schnelle Lösung. Ich werde sie hoffentlich heute abend ausprobieren können (und erfolgreich sein).
Momentan habe ich leider keine Zeit für das Implementieren.


Thx
Javalearner


----------

