Aber woher soll ich wissen, welches Toolkit ich benutze?
Naja, ja nach dem welche Komponenten du für dein Fenster benutzt. Als Basisfenster würde sich z.B. ein javax.swing.JFrame anbieten, alle Komponenten, die in javax.swing stehen, bilden das Swing-Toolkit. Java bringt von sich aus zwei Window-Toolkits mit, das andere ist AWT, das Abstract Window Toolkit. Das ist was älter und sieht nicht so schick aus, ist aber thread-sicher.
Eine Alternative wäre z.B. das Standard Widget Toolkit, das für eclipse entwickelt wurde. Allerdings ist das nicht in Java enthalten und du müsstest es mitliefern. Laut Wikipedia scheint es außerdem ja nach System Performance-Einbußen zu geben (also eclipse läuft auf meinem Ubuntu einwandfrei):
„Allerdings leidet SWT auf einigen Nicht-Windows-Plattformen unter Effizienzproblemen, da es viele Features eines Basistoolkits voraussetzt, welche – wenn nicht vorhanden – emuliert werden müssen.“
Aber nach dem
ich das hier gelesen habe… woher weiß ich, welche Befehle
Plattformunabhängig sind? Ist das Java generell oder nur
spezifische Funktionen? Besonders beim Zugriff auf die Dateien
seh ich Probleme.
Java ist fast komplett Plattformunabhängig, sofern es für das Zielsystem eine VM gibt. Unterschiede findet man z.B. im Input-Handling, denn java kann auch nur das verarbeiten, was das Betriebssystem ihm gibt. So kann z.B. die Reihenfolge oder die Art der Events differieren, die du erhältst, wenn du eine Taste drückst, oder gedrückt hältst.
Aber der Dateizugriff ist komplett unabhängig, solange du nicht versuchst, einen Absoluten Pfad hardzucoden. Du kannst sogar den FileSeparator in Erfahrung bringen (bei Windows der Backslash und bei Unix der Slash).
Einzig das Java Native Interface (JNI) bietet die Möglichkeit, auf native, und damit plattformspezifischen, Funktionen zuzugreifen.
Das mit dem Menüeintrag ist leider immer noch das Problem.
Selbst wenn ich beim Schließen auf das X verweisen kann,
funktioniert das mit dem Sprachenwechsel nicht. Nachdem ich
gestern über 2 Stunden danach krampfhaft gesucht habe, glaub
ich fast dass die Komponente dazu nicht in der Lage ist. (Alle
anderen Programmiersprachen die ich verwendete konnten das)
Hm… ich glaube du verwürfelst da was. Oder ich versteh was nicht richtig…
Der Sprachwechsel ist nicht Aufgabe der Menuleiste. Du könntest genauso gut einen Button damit beauftragen, das würde keinen Unterschied machen.
Den zweiten Teil versteh ich nicht. Was genau hast du versucht, und welche Komponente ist wozu nicht in der lage?
Das mit dem selber Zeichnen der Progressbar und des Diagramms
sind wohl am sinnvollsten. Auch weil man dann in die Details
gehen kann.
Also wie gesagt, die Progressbar musst du auf jeden fall nicht selber malen, das gibts schon.
Wenn man Deteils nicht sehen kann, dann hilft dir aber auch fertiges Balkendiagramm nicht, oder? Also ich seh kein Problem beim zeichnen des Diagramms, zumal das wirklich nicht besonders aufwändig ist.
Aber abgesehen davon hab ich mal grad Google angeschmissen und siehe da: Natürlich gibts was. Z.B. JFreeChart:
http://www.jfree.org/jfreechart/
Vielleicht zeichne ich dann auch gleich noch eine
Baumstruktur. Denn so ein Dialogfenster ist für mein Vorhaben
nicht gerade Benutzerfreundlich.
Wo willst du den Baum denn haben? Es gibt natürlich einen Baum in Swing, den JTree. Ich dachte der wäre nur zur für nen Datei-Auswahldialog gut, und da kann man ihn auch getrost weg lassen. Aber wenn du ihn immer haben willst, könntest du dir nen JTree basteln, der Files Beinhaltet. Ich stell mir das im Moment über ein TreeModel relativ einfach vor (da File ja schon alle Parent- und Children-Getter hat), kann aber sein, dass ich mich täusche.
Wenn die Plattformbedingten Probleme erledigt sind (Datei- und
Ordnerzugriff, Steuerung des Programms) wäre der Rest - also
die Verarbeitung der Informationen - ein Kinderspiel. Denn da
unterscheiden sich die Sprachen wenig.
Jo, vermutlich. Wobei die Verarbeitung aber schätzungsweise den kleinsten Teil der Arbeit ausmachen wird.
Die Programmsteuerung könnte tatsächlich ein wenig Zeit in Anspruch nehmen, wenn du das noch nie gemacht hast.
Aber den Datei-Zugriff finde ich in Java sehr schön gelöst. Wie gesagt, File kann alles was man so mit Files anstellen kann, zumindest mit Informationen über sie. Willst du den Inhalt lesen oder bearbeiten, hilft dir die Klasse nicht mehr weiter. Und ganz mies wirds dann beim kopieren oder verschieben einer Datei, aber das ist ein anderes Thema.
Gruß,
yYy