Komponenten Name

Allgemeine Themen rund um Java

Moderator: wegus

Antworten
guenni_d
Beiträge: 3
Registriert: 06.11.2011, 19:25

Komponenten Name

Beitrag von guenni_d » 16.02.2014, 12:16

Hallo zusammen,
ich hab mehrere JPanels (1-7) die mit einem eigenen Paint gezeichnet werden.

Ich muss hierbei beim zeichnen auf die einzelnen Jpanels unterschiedlich reagieren und wollte dafür die selbe Methode verwenden. Das heisst ich muss den Komponentennamen haben.
Hatte gedacht ich könnte das mit this.getName() erreichen, aber leider geht das nicht.
getName liefert immer ein "null" anstatt wie erhofft z.b. "jPanel1"
Wie geht's richtig?

Code: Alles auswählen

  public class CalPanel extends JPanel {
        @Override
        public void paintComponent(Graphics g) {
            try {
                String komponente;
                super.paintComponent(g);
                 
                 komponente=this.getName();
              

....

Benutzeravatar
nigjo
Beiträge: 599
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: Komponenten Name

Beitrag von nigjo » 16.02.2014, 14:16

guenni_d hat geschrieben:Hatte gedacht ich könnte das mit this.getName() erreichen, aber leider geht das nicht.
getName liefert immer ein "null" anstatt wie erhofft z.b. "jPanel1"
Das "name" Property von Swingkomponenten ist keine automatische Sache. Nur wenn der "name" explizit gesetzt wurde (das geht im Matisse-GUI Editor auch), liefert getName() auch diesen Wert zurück.

Aber wenn deine JPanel alle eine "gemeinsame" paintComponent-Methode nutzen, warum schreibst du dann nicht einfach eine gemeinsame Elternklasse, leitest deine Panel davon ab und implementierst die Methode nur einmal in der Elternklasse?

Jens
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe

guenni_d
Beiträge: 3
Registriert: 06.11.2011, 19:25

Re: Komponenten Name

Beitrag von guenni_d » 16.02.2014, 14:58

Hi Jens,
herzlichen Dank hat funktioniert.

Günter

Antworten