1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Java - größeres Programm

Discussion in 'Programmieren' started by X-Stream, May 29, 2008.

Thread Status:
Not open for further replies.
  1. X-Stream

    X-Stream Byte

    Hi Leute,
    Ich wollte jetzt mal in Java ein etwas größeres Programm (einen Vokabeltrainer) programmieren. Jetzt stellt sich die Frage, wie ich das (codemäßig) übersichtlich strukturiere.
    Es soll z.B. mehrere Ansichten geben, etwa die Ansicht "Vokabeltest" oder "Vokabeln Exportieren".
    Wenn ich jetzt alle Ansichten einfach in 1 .java haue, ist das das schlimmste was ich mir vorstellen könnte zur Fehlersuche :D
    Habe mir jetzt schon folgendes gedacht:
    1) Jede Ansicht kommt in eine Klasse, die von JPanel erbt.
    2) In der "Hauptdatei" werden diese Panels dann verwaltet. (d.h. bei Bedarf altes Panel weg, neues drauf, das Hauptfenster repainten/revalidaten)

    Probleme:
    1) evtl. gibt es gemeinsame Resourcen (ein Array/Vector/Hashtable oder was auch immer wo die Einstellungen des Programms drin gespeichert sind), die in allen Panels verfügbar sein sollen
    2) brauchen manche Ansichten auch Extrainformationen, die ihnen beim Aufruf übergeben werden müssen (Beispiel: Ansicht "Vokabeltest" muss wissen, welche Vokabeln getestet werden sollen)
    3) natürlich muss man aus jeder Ansicht im Code z.B. ein simples changeView("vokabeltest") machen können, wodurch die Ansicht auf "Vokabeltest" geändert wird.

    Oh man, ich hoffe das ist verständlich :sorry:

    Jetzt meine Frage: kann ich den Gedanken so weiterdenken? Oder gibt es da eine "Profi-Variante"?
    Überlegt habe ich auch schon über einen "Missbrauch" einer firePropertyChange()...
     
  2. L-ectron-X

    L-ectron-X Guest

    Deine Gedanken weitergedacht führen dich in eine Sackgasse.

    Eine Ansicht ist bei mir nur ein Stück GUI. Die Funktionen dahinter und die Daten werden in jeweils eigenen Klassen verwaltet bzw. ausgeführt.
    So baust du dir robusteren, übersichtlicheren und besser wartbaren Code.
     
  3. X-Stream

    X-Stream Byte

    Gut. Überschaubaren & guten Code stelle ich mir jetzt so vor:
    1.) GUI und Rest sind getrennt
    2.) GUI-Aktionen werden im Event-Dispatching Thread ausgeführt (sollte so sein, steht im Sun SDN)
    An sich sind die beiden Gedanken recht kompatibel, der Code (Datenbankabfragen, Programmlogik) kann im "normalen" Thread ausgeführt werden, die GUI-Klasse kommt per invokeLater() in den EDT.
    Es kann aber ja passieren, dass zu Laufzeit GUI Elemente geändert werden müssen. Müsste ich dann für jedes button1.setText() ne neue Runnable erzeugen und per invokeLater reingeben? Das ist doch ätzend...
    Außerdem stand im SDN auch, dass jeder Code im EDT ausgeführt werden soll, nur keine Zeitaufwändigen Sachen... Das würde ja diesem Modell wiedersprechen.
    Kennt vielleicht jemand ein übersichtlich aufgebautes open-source javaprojekt, dass ich mir mal angucken könnte?
     
  4. L-ectron-X

    L-ectron-X Guest

Thread Status:
Not open for further replies.

Share This Page