Hallo zusammen,
ich bastle schon seit einiger Zeit an einem Kalender mit Swing herum. Das Ding wäre eigentlich fertig, wenn da nicht die nervige GUI wäre
So, ich habe mir das folgendermaßen gedacht:
JTable mit zwei Spalten, Spalte 1 zeigt die Zeitleiste, Spalte 2 den jeweiligen Termin.
Aktuell sieht der Entwurf so aus:
Derzeit ist das Vorgehen wie folgt:
Die JTable hat ein eigenes Model, das sorgt für die richtigen Einträge in den richtigen Spalten.
So wird z.B. in der ersten Spalte immer die Zeit angezeigt.
Sollte eine Zelle aus der zweiten Spalte angefordert werden, so wird ein Array von Terminen, die den aktuellen Tag betreffen, durchwühlt und es wird geprüft, ob die aktuelle Zelle davon betroffen ist (sprich, ob der Termin irgendwas mit der angezeigten Zeit in Spalte 1 zu tun hat). Das ist alles andere als performant, aber das ändere ich später noch.
Die ersten paar Zellen eines Termins bekommen dann noch zusätzliche Informationen (Titel, Beschreibung, Startzeitpunkt, Endzeitpunkt) verpasst.
Nun würde ich aber gerne alle von einem Termin betroffenen Zellen mit einer Hintergrundfarbe versehen.
Dies passiert über den CellRenderer (der noch nicht fertig und der Grund meines Beitrags ist).
Um herauszufinden, ob eine Zelle wieder vom Termin betroffen ist (um die Hintergrundfarbe zu setzen), müsste ich hier ja erneut durch alle Termine des aktuellen Tages durchlaufen. Ist nicht tragisch, aber irgendwie nicht schön
Da bin ich aber schon beim nächsten Problem: Wie unterscheide ich im CellRenderer, ob die Zelle einen Zeitindex (die Dinge in der 1. Spalte der Tabelle) oder eine Beschreibung eines Termins enthält?
Kann man irgendwie im CellRenderer in Erfahrung bringen, um welche Zelle es sich gerade handelt (also row/col)?
Was würdet ihr mir raten, wie ich vorgehen sollte? Ich habe bisher in Java nur Kleinkram programmiert, also nichts größeres und auch meistens ohne GUI.
Eine andere Lösung für das "Strecken" der Tabellenzellen auf die Größe des Termins wäre es ja, sowas http://www-st.inf.tu-dresden.de/SalesPoint/v3.1/faq/SwingExamples/html/jtable4.html zu machen, aber das kompiliert bei mir nicht richtig.
Herzlichen Dank für eure Unterstützung,
mmm
ich bastle schon seit einiger Zeit an einem Kalender mit Swing herum. Das Ding wäre eigentlich fertig, wenn da nicht die nervige GUI wäre
So, ich habe mir das folgendermaßen gedacht:
JTable mit zwei Spalten, Spalte 1 zeigt die Zeitleiste, Spalte 2 den jeweiligen Termin.
Aktuell sieht der Entwurf so aus:
Derzeit ist das Vorgehen wie folgt:
Die JTable hat ein eigenes Model, das sorgt für die richtigen Einträge in den richtigen Spalten.
So wird z.B. in der ersten Spalte immer die Zeit angezeigt.
Sollte eine Zelle aus der zweiten Spalte angefordert werden, so wird ein Array von Terminen, die den aktuellen Tag betreffen, durchwühlt und es wird geprüft, ob die aktuelle Zelle davon betroffen ist (sprich, ob der Termin irgendwas mit der angezeigten Zeit in Spalte 1 zu tun hat). Das ist alles andere als performant, aber das ändere ich später noch.
Die ersten paar Zellen eines Termins bekommen dann noch zusätzliche Informationen (Titel, Beschreibung, Startzeitpunkt, Endzeitpunkt) verpasst.
Nun würde ich aber gerne alle von einem Termin betroffenen Zellen mit einer Hintergrundfarbe versehen.
Dies passiert über den CellRenderer (der noch nicht fertig und der Grund meines Beitrags ist).
Um herauszufinden, ob eine Zelle wieder vom Termin betroffen ist (um die Hintergrundfarbe zu setzen), müsste ich hier ja erneut durch alle Termine des aktuellen Tages durchlaufen. Ist nicht tragisch, aber irgendwie nicht schön
Da bin ich aber schon beim nächsten Problem: Wie unterscheide ich im CellRenderer, ob die Zelle einen Zeitindex (die Dinge in der 1. Spalte der Tabelle) oder eine Beschreibung eines Termins enthält?
Kann man irgendwie im CellRenderer in Erfahrung bringen, um welche Zelle es sich gerade handelt (also row/col)?
Was würdet ihr mir raten, wie ich vorgehen sollte? Ich habe bisher in Java nur Kleinkram programmiert, also nichts größeres und auch meistens ohne GUI.
Eine andere Lösung für das "Strecken" der Tabellenzellen auf die Größe des Termins wäre es ja, sowas http://www-st.inf.tu-dresden.de/SalesPoint/v3.1/faq/SwingExamples/html/jtable4.html zu machen, aber das kompiliert bei mir nicht richtig.
Herzlichen Dank für eure Unterstützung,
mmm