theHacker

sieht vor lauter Ads den Content nicht mehr
Teammitglied
ID: 69505
L
20 April 2006
22.680
1.315
Moin,

ich möchte eine Art ListView wie im Windows-Explorer in einer Java-Anwendung programmieren:


Mein aktueller Versuch ist ein JPanel mit einem GridLayout, das mit einer fixen Spaltenzahl das Grid vorgibt. Die Elemente selber habe ich durch ein JPanel dargestellt, das abhängig vom gewünschten Bild sein preferredSize anpasst. Die Darstellung selber ist durch Überschreiben von paintComponent() gelöst.

Probleme habe ich aktuell mit

  • das GridLayout mit der fixen Spaltenzahl gefällt mir nicht, ich möchte das Fenster auch gerne vergrößern/verkleinern und die Elemente sollten dann entsprechend "umbrechen". Mit einem nachträglichen Ändern der cols-Zahl vom GridLayout hab ich schon rumprobiert. Das is dann knifflig, sollten die Elemente mal unterschiedliche Größe haben (aktuell spiel ich erstmal mit konstanter Größe rum).
  • Da die Größe der Element konstant ist, reicht mir der Platz für den Text bei längeren Texten nicht aus. Schön wäre, wenn das Element dann mehrzeilig den Text anzeigt.
  • Sämtliche Interaktion der Elemente (z.B. anklicken, markieren, Kontextmenü) und des JPanels drumrum (da is n ScrollPane drumrum, was aber nicht pro Element-Zeile scrollt; klar, kennt das ScrollPane ja nicht) muss ich nun selber nachbilden.
Ich fürchte, dass ich auf dem Holzweg bin und mir zuviel Arbeit mach, wo es schon was gibt.
Hat wer ne Idee oder n Tipp für mich?
 
Ich hab zwar nicht ganz verstanden was du möchtest aber eventuell hilft dir das weiter.
https://www.java-forum.org/bilder-gui-damit-zusammenhaengt/23407-jtree-teil-1-einfuehrung.html
Das isn Baum; leider nicht das gesuchte :ugly:
Ich möchte einen Container mit einer Menge von Elementen füllen, wobei die Elemente ein Bild und eine Beschriftung haben, die drunter angezeigt werden soll.
Hat du eine Skizze?
Skizze findest du in Post #1, da hab ich bereits einen Screenshot vom Explorer angehängt.
 
Ich glaube, Du mußt Dir da selbst was schreiben.
Vll gibts ne externe Erweiterung, kenn ich nur nicht, weil JAVA liegt bei mir wie schon mal erwähnt ne Weile zurück. Aber als ich mal damit zu tun hatte, gabs ja nur die Sachen die schon Verwendung bei Dir finden. Wir mussten auch so einiges dazuprogrammieren.

Bsp.: Wir sollten ein JPanel füllen mit Darstellung eines Programms. D.h. Die Main war die Wurzel des Baumes und dann die Funnktionen mit deren Methoden usw. als Baumstruktur darstellen und möglichst wenig übershcneidungen in den Linien und die Elemente sollten Positionsveränderbar sein, sowie daraus resultierende Änderung der Linien zu diesen Elementen.
Da waren also Algorithmen gefragt und ein Refresh des JPanels ...

Denke Du kannst ne Klasse bauen, wo Du eben ein Bild mit Schrift drunter darstellst. Musst halt hier bei der Darstellung aufpassen, bei wieviel Zeichen Du einen Umbruch reinbaust. Das dynamische darstellen der Anzahl ist auch hier ein kleiner Algorithmus, der sollte DIr ja nun wahrlich nicht so schwer fallen.

Du studierst doch, also hop hop !
 
Warum auch immer - Adblock hat das Bild gefressen.

Ich möchte einen Container mit einer Menge von Elementen füllen, wobei die Elemente ein Bild und eine Beschriftung haben, die drunter angezeigt werden soll.

Dafür würde sich das GroupLayout anbieten.
https://www.java-forum.org/bilder-gui-damit-zusammenhaengt/128924-grouplayout.html

Aber generell kannst du alle Layout-Manager kombinieren. Dafür musst du nur entscheiden welche Komponente mit welchem Layout-Manager am einfachsten umzusetzen ist.

Eventuell kann man sogar die einzelnen "Laufwerke" als Box-Layout umsetzen und die einzelnen Spalten mit einem Flow-Layout. Da hättest du dann auch das umbrechen.