Announcement

Collapse
No announcement yet.

JButton variabel halten?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • JButton variabel halten?

    Hallo,<BR>
    <BR>
    ich hoffe es kann mir hier jemand helfen!<BR>
    Mein Problem: Ich benutze eine XML-Datei in welcher der Name und verschiedene Werte für einen Swing-Button gespeichert sind. Mein Java-Programm soll diese Werte auslesen und mir diesen Button mit dem übergebenen Namen erzeugen!<BR>
    Steht in der Datei als Buttonname z.B. MyButton, so soll folgendes erzeugt
    werden:<BR>
    <PRE>
    private JButton MyButton = new JButton();
    <PRE>
    <BR>
    Wie kann ich diese Zeile variable halten?<BR>
    So funktionierts z.B. nicht:<BR>
    <PRE>
    String ButtonName = "Testbutton"
    private JButton ButtonName = new JButton();
    <PRE>
    <BR>
    Das Problem ist, dass ich wirklich nur soviele Buttons anlegen möchte, wie auch in der Datei vorhanden sind. Wird in der Datei ein Buttonname gefunden, übergebe ich ihn als String an eine Funktion, die mir dann den Button mit übergebenem Namen anlegen soll!<BR>
    Vielen Dank schonmal für die Hilfe!!!<BR>
    Gruss Jens

  • #2
    Der button name ist das eine - jeder dieser buttons soll doch sicher einen eigenen ActionListener haben oder ?
    Sonst wuerde ich sagen :

    Anzahl aller vorhanden ButtonNamen in einer Schleife durchgehen und die folgende Methode aufrufen.

    <PRE>
    private AbstractButton getButton(String s) {
    return new AbstractButton(s);
    }
    </PRE>

    Diese Methode ist aber eigentlich erst dass sinnvoll, wenn man dem button, der zurueck geliefert wird, noch separate Eigenschaften (ueber PropertyDescriptor oder sowas)

    Comment


    • #3
      Hallo Jens,

      ich weiß, daß dieser Kommentar sehr spät kommt. Ich bin beim Durchstöbern der Einträge nur dauf gestoßen. Vielleicht hast Du es ja irgendwie gelöst und es interessiert Dich immer noch, wie jemand anderes es gemacht hätte.<BR>
      <BR>
      Wenn Du nur so viele Buttons anlegen möchtest, wie Du wirklich brauchst, bzw. die Anzahl der Buttons dynamisch, also nicht nach oben beschränken möchtest, müßtest Du sie ohne direkten Bezug anlegen. D.h. entweder in einer Schleife direkt auf die Oberfläche setzen und keine (direkte) Referenzen auf sie haben oder sie in einem Vector ablegen. Identifizieren könntest Du sie im Vector durch den ActionCommand. Du setzt ihren Action-Command mit einer Angabe aus Deiner XML-Datei (oder beläßt es eben bei der Beschriftung als ActionCommand). Mit der getActionCommand-Methode könntest Du jederzeit jeden einzelnen Button identifizieren.<BR>
      Schwierig wird es mit dem Code, der ausgeführt werden soll, wenn der Button geklickt wird. Um es richtig dynamisch zu machen, müßtest Du den oder die ActionListener erst erzeugen, nachdem Du den Code aus der XML-Datei gelesen hast. Das ist aber alles andere als schön, weil in einer XML-Datei Java-Code stehen müßte und weil dann beim Start der Anwendung dafür Zeit verbraucht wird.<BR>
      Schöner wäre es, wenn man in der XML-Datei nur die Klasse des ActionListeners angibt, die dann beim Erzeugen des Buttons per Class-Loader geladen wird und der ActionLister dem Button zugewiesen wird. Du kannst dann für einige vordefinierte Verhaltensweisen ActionListener vorsehen. Es kann aber jederzeit ein anderer programmiert werden (zumindest Du könntest es). Der Zusammenhang zwischen Button und dessen Verhalten wäre dann dynamisch über Deine XML-Datei gesteuert.<BR>
      <BR>
      Es würde mich interessieren, wie Du es letztendlich gelöst hast.<BR>
      <BR>
      Stefa

      Comment

      Working...
      X