Anzeige:
Ergebnis 1 bis 6 von 6

Thema: [JAVA] und ein dummes Problem!

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.04.2001
    Beiträge
    79

    Question [JAVA] und ein dummes Problem!

    Hallo,
    unter Java ist mir jetzt ein Problem aufgekommen, was ich seit Tagen nicht lösen konnte.
    Hier kurz das was ich machen möchte:
    Aus einer Textdatei lese ich die Namen von Buttons aus. Diese Buttons mit dem gleichen Namen existieren bereits auf der Form. Aus einer anderen Textdatei lese ich die Beschriftung für die Buttons aus.
    Das Problem ist, die Namen sind Strings!

    Beispiel:
    Code:
    String knopf = new String ("button");
    String label = new String("Hallo");
    
    Frame1 frame = new Frame1();
    frame.knopf.setLabel(label);
    Wie kann ich das lösen? Habs auch mit casten versucht, ging nicht.
    Hoffe wirklich das mir jemand helfen kann...
    Gruß an alle
    oafish

  2. #2
    Registrierter Benutzer
    Registriert seit
    07.12.2001
    Ort
    Kaiserslautern
    Beiträge
    65
    Hi,
    wenn ich Dich recht verstanden habe, dann willst Du eine textuelle Zuordnung der Namen zu den Elementen?
    Da solltest Du mal einen Blick auf die Hash-Tables werfen. Es gibt davon eine Menge Klassen unter dem Packet java.util.
    Tschüß.
    Athlon 1 GHz
    0,512 GB RAM
    30 + 40 GB UDMA-100 HDs
    GeForce 2 MX
    SuSE 8.0 Professional
    www.mp-maverick.de
    Leibniz: Omnibus ex nihilo ducendis sufficit unum - Um alles aus dem Nichts herzuleiten, genügt eine Eins

  3. #3
    Registrierter Benutzer
    Registriert seit
    20.04.2001
    Beiträge
    79
    Hallo,
    danke für Deine antwort. Werd mich gleich mal reinlesen

    Weißt du ob es möglich ist, Objekte zu ändern?

    beispielsweise sowas:

    Button te1 = new Button();
    ... java macht was

    und jetzt te1 auf te2 ändern.
    Geht sowas?

    Gruß
    oafish

  4. #4
    Registrierter Benutzer
    Registriert seit
    07.12.2001
    Ort
    Kaiserslautern
    Beiträge
    65
    Hi,
    also wenn Du meinst, daß eine Variable auf ein anderes Objekt verweisen soll, ja das geht.
    Tschüß.
    Athlon 1 GHz
    0,512 GB RAM
    30 + 40 GB UDMA-100 HDs
    GeForce 2 MX
    SuSE 8.0 Professional
    www.mp-maverick.de
    Leibniz: Omnibus ex nihilo ducendis sufficit unum - Um alles aus dem Nichts herzuleiten, genügt eine Eins

  5. #5
    Registrierter Benutzer
    Registriert seit
    20.04.2001
    Beiträge
    79
    Hallo,
    mir gehts es vielmehr um eine Art dynamic. Also ich habe mehrer Strings die die Namen der Buttons entahlten. Gleichzeitig hab ich mehrer Strings die die entsprechenden Labels beinhalten. Jetzt muß ich es irgendwie hinbekommen dass diese dynamisch erzeugt werden. Klar könnte ich jetzt jedesmal per Hand Button b = new Button() usw. tippen. Das soll mir aber das Programm machen.

    Die Textdatei sieht so aus:

    button1:notepad.exe:run notepad
    button2:vi /smb.conf:smb.conf ändern
    button3:more /smb.conf:smb.conf anzeigen
    usw.

    Es muß doch möglich sein das dynamisch hinzukriegen...

    Gruß
    oafish

  6. #6
    Registrierter Benutzer
    Registriert seit
    21.01.2001
    Beiträge
    157
    Was Du vermutlich suchst (Du weißt es nur noch nicht ;-) nennt sich Introspection bzw Reflection. D.h. programmiersprachliche Einheiten (in Java Objekte) können Auskunft über ihren Typ, ihre eigenschaften, ihre Verwendung etc. geben.

    Das meiste dazu findest Du in java.lang und java.lang.reflect.

    Dürfte dann irgendwie so Aussehen.

    ((Button)(frame.getClass().getDeclaredField(knopf) .get(frame)) ).setLabel(label);

    Alternativ (vielleicht auch besser, rein sicherheits- und performance-technisch) den Button nicht nur in der Variable button abzulegen (wenn überhaupt) sondern auch in einer java.lang.Hashtable unter einem passenden String als Schlüssel, z.B. "button". Dann kannst Du einfacher

    ((Button)hash.get(knopf)).setLabel(label);

    benutzte.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •