JTable mit mehreren (Unter-)Fenster innerhalb des Hauptfensters

runT

Mitglied
Hi Jungs, :)

Da ich in an einer neuen Applikation dran bin und ein Hauptfenster erstellen soll, welches mehrere, insgesamt sind das deren 3, (kleinen) Frames verwaltet, wollte ich euch fragen wie ich effizient dies aufbauen kann. :rolleyes:

Eine von den 3 InternalFrames muss 1 Tabelle(JTable) besitzen und eben Daten anzeigen. Diese Daten (als *.csv File abgespeichert) werden via eine FileReader/InputStreamReader Klasse geholt und innerhalb der Tabelle importiert. Ist das überhaupt geschickt und effizient mit JFrame und danach eine JDesktopPane hinzuzufügen anschliessend eben noch diese JInternalFrames noch reinzuquetschen?

Kenne zwar noch JSplitPane und die JSeparator, die aber nur das Fenster halt halbieren.

Oder habt Ihr eventuell andere Varianten, die vielleicht einfacher zu programmieren sind.

Thanks im Voraus M8's für den Support und Tips.

Greetz from Switzerland ;-)
Rob, Student Hochschule HF Baden
 
Weiss jetzt nicht ob ich dich da richtig verstanden habe, du möchtest dieses JFrame-Hauptfenster in quasi 3 Teile aufspalten, die verschiedene Komponenten haben?

Falls das so ist würde ich auf das JFrame-Hauptfenster einfach statt 3 anderen JFrames 3 JPanels legen und dort dann jeweils die Elemente anordnen.

Sauber bewerkstelligen solltest du das per LayoutManager, der dann die JPanels incl. zgh. Elementen auf dem JFrame automatisch richtig anordnet wie gewünscht.
(bei dem einen JPanel addest du dann eben ganz simpel die gewünschte JTable)
Wahlweise kannst du auch beispielsweise ein JScrollPane statt einem JPanel für die Tabelle zu benutzen, falls die table später zuviele Datensätze hat.
Müsste nun die Funktionen der anderen Teile wissen um dir hier einen Layoutmanager zu empfehlen, allerdings kann man per BorderLayout und GridLayout meistens schon anständige Anordnungen zusammen basteln.
Prinzipiell:
Das BorderLayout kann die Komponenten in die Himmelsrichtungen north, east, south, west und center Anordnen. Das ist oft hilfreich wenn du beispielsweise eine dominante Komponente haben möchtest, die gegenüber den anderen Komponenten ihre Größe und Position beibehält (Statusleisten zum Beispiel)
Das GridLayout zerstückelt das JFrame in Teile gleicher Größe, macht also ein Gitternetz daraus. Dort kannst du dann die Komponenten drauf adden.
Beispielsweise spaltest du damit das JFrame in 3 Teile auf und addest dann nacheinander die 3 JPanels, diese liegen dann je nach Wunsch als Spalten oder Zeilen nacheinander auf dem JFrame.
Für komplexere Gitternetzdarstellungen ist das GridbagLayout noch ganz hilfreich, dort können die einzelnen Größen und Eigenschaften der "Zellen" definiert werden...mit dem habe ich allerdings bisher noch nicht gearbeitet.

Kann dir bei Bedarf noch Beispielcodes für beide Layoutmanager posten, musste mich schon recht viel mit denen in der Vergangenheit rumärgern.
 
Zuletzt bearbeitet:
Heyho,

Inkog hat den Nagel auf den Kopf getroffen...
empfehlen kann ich dir sonst noch die JTabbedPane, dieser kannst du dann deine JPanels adden und jeweils die Elemente anordnen, über Register kannst du dann auf deine Panels "zugreifen" :)

Etwas möchte ich noch zu Inkogs Post hinzufügen:
Falls du garkein Layout nutzt, kannst du den Elementen die Koordinaten und Größen mitteilen via
Java:
// setBounds(int x, int y, int width, int height)
element.setBounds(25, 25, 50, 50);

Grüße
Felix
 
Zurück