nur paar Ansätze

Status
Nicht offen für weitere Antworten.

Apollo

Mitglied
Hallo
ich bräuchte mal ein paar Ansätze wie ich folgendes Problem lösen kann.
Und zwar will ich ein Programm schreiben, das Eingabefelder, Comboboxen etc. besitzt und
die eingegebenen Daten in die Datenbank schreibt. Eigentlich schnell zu lösen.
Aber bei diesem Programm will ich, dass die Anzahl der Eingabefelder dem Programm erst während der Laufzeit bekannt ist. Problem dabei nur, dass man bekanntlich während der Laufzeit keine neuen Objektnamen für die Felder verteilen kann. Wie kann ich das Problem umgehen?
 
S

SlaterB

Gast
wuzo wolltest du den neuen Eingabefeldern neue Objektnamen (= Variablennamen?) geben?
du hast doch eh keinen Quelltext, der die Namen benutzt ;)

speichere neue Felder in einer Liste oder in einer Map zu einem String-Namen
 

thomator

Bekanntes Mitglied
Macht gelegentlich schon Sinn, was er da will. Ich hab mal ne Anwendung gebastelt, mit der man XML-Dateien mit grafischer Benutzungsoberfläche editieren konnte. Das Ganze war auch dynamisch, sprich die Oberfläche wurde auf Grundlage der Informationen in der XML-Datei zusammengebaut. Dafür gabs in den XML-Dateien dann einige spezielle Tag-Attribute.
Um die XML-Datei nach den Änderungen ebenso dynamisch wirder zusammenbauen zu können muss man schon mit entsprechenden Namen arbeiten oder intern Mappingtabellen aufbauen.
 
S

SlaterB

Gast
aber diese Namen waren dann doch wohl in Exemplarvariablen von Objekten, die in Listen gespeichert wurden, gespeichert,
dagegen spricht ja auch bei neuen Elementen zur Laufzeit nix,

nicht Namen von Java-Quellcode-Variablen?
 

thomator

Bekanntes Mitglied
Nee, nix Variablennamen im Quellcode. Die Felder sind anhand der XML-Struktur für das Frontend erstellt worden und haben entsprechende Namen oder ActionCommands bekommen, um die geänderten Werte dann wieder zuordnen zu können.

EDIT: Der Ansatz war der, dass ich zur Laufzeit eigentlich keinen Handle auf die Felder benötige, wenn ich bei der Instanziierung gleich die notwendigen Event-Handler zuweise. Dort werden dann die notewendigen Operationen abgebildet.

Noch mal EDIT: Dann hab ich allerdings auch einen Handle, nur über den Event-Handler :lol:
 
S

SlaterB

Gast
sicher sicher,

ich versuche nur einen Bezug zur Ursprungsfrage herzustellen,
da ging es eben un Variablennamen wenn ich es richtig interpretiere ;)
 

thomator

Bekanntes Mitglied
Hmmmm....
Aber ich lehne mich mal soweit aus dem Fenster, zu behaupten, dass Apollo die Frage etwas 'umständlich' formuliert hat. ???:L
 

mikachu

Top Contributor
Man kann doch jeder Instanz von JComboBox, JTextField, etc... per setName( String name );
einen Namen verpassen, welchen man ja anhand der Anzahl dynamisch zusammenbauen lassen kann.
e.g. setName( "combobox" + counter );
und klar... alles in nem Container ablegen!
 

thomator

Bekanntes Mitglied
Na ja, mit einfach nur einem Counter wird es aber schwierig, die Felder dann wieder für das Rückschreiben in die Datenbank auszuwerten bzw. zuzuordnen. Die Namen der Frontendfelder können aber direkt den Namen des Datenbankfeldes bekommen, dann kann man das problemlos zurückschreiben.
Aber evtl. würde es ja helfen, wenn Apollo mal etwas genauer beschreibt, was er eigentlich vorhat?
 

Apollo

Mitglied
Also das grundlegende Ziel ist es, das ich nicht jedes Mal das Programm umändern will nur weil ein Eingabefeld dazu gekommen oder weggefallen ist. Zudem besitzen die Felder bestimmte Eigenschaften, zum Beispiel das nur Zahlen oder eine bestimmte Länge eingegeben werden kann. So besitzt jede Eigenschaft eine eigene Klasse. Die Klasse besitzt neben dem Konstruktur zum Beispiel noch die Methoden JTextField getEmailfield() und String getEmailtext().

Jetzt will ich das halt so machen, dass in einer Datei die Felder stehen die man benötigt und das Programm baut die Felder dementsprechend selbst auf. Der Inhalt der Datei könnte wie folgt aussehen (Bezeichnung|Benötigtes Feld):

[Name|Namensfeld] [Straße|Namensfeld] [Email1|Emailfeld] [Hausnummer|Nummernfeld]

So wenn das Programm startet ließt es die Datei aus. Mittels einer Bedingungsanweisung holt er sich für jedes benötigte Eingabefeldfeld das in der Datei steht die entsprechende Klasse und erzeugt davon ein Objekt.

Und da beginnt das Problem: Das ich keine Variabelnamen verteilen kann war mir klar. Aber das mit der Liste klappt ja auch nicht. Schließlich weiß das Programm nicht, ob es mit getEmailtext oder getZahl den Wert bekommt. Irgendwie bin ich hier in eine Sackgasse geraden und bräuchte einen komplett neuen Ansatz
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben