WinFuture-Forum.de: Java mehrere Guielemente ändern - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Java mehrere Guielemente ändern


#1 Mitglied ist offline   LoD14 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.931
  • Beigetreten: 04. Mai 03
  • Reputation: 45
  • Wohnort:Hennef bei Köln

geschrieben 27. September 2010 - 13:03

Moin,

ich hab ein Problem.
Und zwar hat ich ne Anwendung, die viele Buttons hat. Ich möchte da jetzt von 50 Buttons die Beschriftung ändern. Es böte sich eine Schleife an.

Kann ich sowas in einer Schleife realisieren? Also jToggleButton[variable] geht ja nicht. Meine Idee war jetzt, alles in eine Collection packen und die per Schleife durchlaufen, die Gui Objekte rausholen und dann verändern. Das kriegt ich aber nicht hin. weil zb bei der ArrayList müsste ich vermutlich Casten oder sowas. Bei ArrayList.get(i) komm ich so nicht an ArrayList.get(i).setText ran.

Wäre für Hilfe sehr dankbar!
LoD14
0

Anzeige



#2 Mitglied ist offline   Fabi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.958
  • Beigetreten: 30. August 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 27. September 2010 - 20:16

Wie heißen denn die Buttons? haben die eine Bestimmte Namenskonvention, z.B. btn_Neu1 mit fortlaufender Nummer oder so?
Weil dann könntest du das ganze in ner for-Schleife realisieren.
Du nimmst dann den festen Namen und hängst die laufende Nummer an.

Wenn die Buttons alle verschiedene Bezeichner haben, dann wirds natürlich schwierig...

Ist die GUI selbst von Hand geschrieben oder mit einem GUI-Designer zusammen gebastelt worden?


lg,
Fabi
0

#3 Mitglied ist offline   LoD14 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.931
  • Beigetreten: 04. Mai 03
  • Reputation: 45
  • Wohnort:Hennef bei Köln

geschrieben 27. September 2010 - 22:08

die sind fortlaufend nummeriert.

aber folgendes geht nicht:

for (int i = 1; i < 20; i++)
Button[i].setText();

Das ganze hab ich in Netbeans zusammengeklickt.
0

#4 Mitglied ist offline   TO_Webmaster 

  • Gruppe: Moderation
  • Beiträge: 3.225
  • Beigetreten: 27. März 02
  • Reputation: 82
  • Geschlecht:Männlich

geschrieben 28. September 2010 - 01:26

Beitrag anzeigenZitat (LoD14: 27.09.2010, 14:03)

weil zb bei der ArrayList müsste ich vermutlich Casten oder sowas. Bei ArrayList.get(i) komm ich so nicht an ArrayList.get(i).setText ran.

Hmm, ohne mich näher damit zu beschäftigen: Kann es sein, dass du Generics benutzen musst? Also sowas:

List<Typ_deines_Buttons> Buttons = new ArrayList<Typ_deines_Buttons>();


MfG TO_Webmaster
The old reverend Henry Ward Beecher
called a hen the most elegant creature.
The hen pleased for that,
laid an egg in his hat.
And so did the hen reward Beecher.
0

#5 Mitglied ist offline   LoD14 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.931
  • Beigetreten: 04. Mai 03
  • Reputation: 45
  • Wohnort:Hennef bei Köln

geschrieben 28. September 2010 - 08:23

ah, danke TO, genau das war es. Ich dachte, dass geht automatisch. Mein fehler, funzt jetzt ;(
0

#6 Mitglied ist offline   Fabi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.958
  • Beigetreten: 30. August 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 29. September 2010 - 16:16

for (int i = 1; i < 20; i++)
Button[i].setText();

kann mir dann mal jemand den genauen Grund nennen, warum dieses Verfahren nicht funktioniert?

lg,
Fabi
0

#7 Mitglied ist offline   -__-Cartman-__- 

  • Gruppe: aktive Mitglieder
  • Beiträge: 35
  • Beigetreten: 20. November 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Frankfurt/Main

geschrieben 04. Oktober 2010 - 21:59

Weil der Java-Compiler so denkt, dass es sich bei Button[i] um ein Array handelt. Für das, was du vorhast, gibt es die Java Reflections API. Aber ich persönlich halte es für einfacher, einfach die Buttons in eine ArrayList zu packen und diese dann zu durchlaufen.
0

#8 Mitglied ist offline   TechChabo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 339
  • Beigetreten: 07. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Hannover
  • Interessen:Business Process Manager ITO
    Dipl.-Ing. Wirtschaftsinformatik

geschrieben 07. Oktober 2010 - 08:16

Beitrag anzeigenZitat (Fabi: 29.09.2010, 18:16)

for (int i = 1; i < 20; i++)
Button[i].setText();

kann mir dann mal jemand den genauen Grund nennen, warum dieses Verfahren nicht funktioniert?

lg,
Fabi


Es ist ein "undefiniertes" Array, der Compiler kann nicht wissen was drin liegt daher ist es für ihn Inhalt vom Typ "Object" und das hat logischerweise nicht die funktion setText().


Beitrag anzeigenZitat (-__-Cartman-__-: 04.10.2010, 23:59)

Weil der Java-Compiler so denkt, dass es sich bei Button[i] um ein Array handelt. Für das, was du vorhast, gibt es die Java Reflections API. Aber ich persönlich halte es für einfacher, einfach die Buttons in eine ArrayList zu packen und diese dann zu durchlaufen.


Hat er doch oben gemacht, das Problem sind eben o.g. Generics gewesen. Einfach immer ordentlich den Typ deklarieren und man hat keine Probleme ;)

Schöne Grüße
Eingefügtes Bild
Eingefügtes Bild
‘The only thing necessary for the triumph of evil is for good men to do nothing.’, Edmund Burke
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0