ich habe ein riesiges Problem.
Ich nutze ein JPanel um eine Dateiliste anzuzeigen.
Als Layout habe ich das GridBagLayout gewaehlt.
In jeder Zeile meines Panel liegen zwei JLabel,
eines enthaelt den Dateinamen, ein weiteres die
Groesse der Datei.
Bei wenigen Dateien ist alles kein Problem,
aber bei mehr als 500 Zeilen gibt es eine
supertolle:
ArrayIndexOutOfBoundsException (siehe unten)
Noch etwas merkwuerdiges. Wenn ich das Panel erzeuge,
also mit Daten fuelle, gibt es keine Exception.
Erst wenn ich es Anzeige, also den Dialog der das
Panel enthaelt sichtbar mache, tritt diese Exception auf.
Wer weiss denn was das bedeutet?
bye, Daniel ...
java.lang.ArrayIndexOutOfBoundsException
at java.awt.GridBagLayout.GetLayoutInfo(GridBagLayout.java:795)
at java.awt.GridBagLayout.preferredLayoutSize(GridBagLayout.java:558)
at java.awt.Container.preferredSize(Container.java:833)
at java.awt.Container.getPreferredSize(Container.java:817)
at javax.swing.JComponent.getPreferredSize(JComponent.java:992)
at javax.swing.ViewportLayout.preferredLayoutSize(ViewportLayout.java:76)
at java.awt.Container.preferredSize(Container.java:833)
at java.awt.Container.getPreferredSize(Container.java:817)
at javax.swing.JComponent.getPreferredSize(JComponent.java:992)
at javax.swing.ScrollPaneLayout.preferredLayoutSize(ScrollPaneLayout.java:460)
at java.awt.Container.preferredSize(Container.java:833)
at java.awt.Container.getPreferredSize(Container.java:817)
at javax.swing.JComponent.getPreferredSize(JComponent.java:992)
at java.awt.GridBagLayout.GetLayoutInfo(GridBagLayout.java:799)
at java.awt.GridBagLayout.ArrangeGrid(GridBagLayout.java:1198)
at java.awt.GridBagLayout.layoutContainer(GridBagLayout.java:628)
at java.awt.Container.layout(Container.java:686)
at java.awt.Container.doLayout(Container.java:676)
at java.awt.Container.validateTree(Container.java:750)
at java.awt.Container.validateTree(Container.java:757)
at java.awt.Container.validateTree(Container.java:757)
at java.awt.Container.validateTree(Container.java:757)
at java.awt.Container.validateTree(Container.java:757)
at java.awt.Container.validateTree(Container.java:757)
at java.awt.Container.validateTree(Container.java:757)
at java.awt.Container.validateTree(Container.java:757)
at java.awt.Container.validateTree(Container.java:757)
at java.awt.Container.validate(Container.java:728)
at java.awt.Dialog.conditionalShow(Dialog.java:308)
at java.awt.Dialog.show(Dialog.java:355)
> Ich nutze ein JPanel um eine Dateiliste anzuzeigen.
> Als Layout habe ich das GridBagLayout gewaehlt.
>
> In jeder Zeile meines Panel liegen zwei JLabel,
> eines enthaelt den Dateinamen, ein weiteres die
> Groesse der Datei.
>
> Bei wenigen Dateien ist alles kein Problem,
> aber bei mehr als 500 Zeilen gibt es eine
> supertolle:
> ArrayIndexOutOfBoundsException (siehe unten)
>
> Noch etwas merkwuerdiges. Wenn ich das Panel erzeuge,
> also mit Daten fuelle, gibt es keine Exception.
> Erst wenn ich es Anzeige, also den Dialog der das
> Panel enthaelt sichtbar mache, tritt diese Exception auf.
>
> Wer weiss denn was das bedeutet?
http://java.sun.com/j2se/1.4.1/docs/api/java/awt/GridBagLayout.html#MAXGRIDSIZE
Mußt Du wohl einen anderen Layout-Manager verwenden...
Danke fuer die schnelle Hilfe :-)
Und ich dachte immer GridBagLayout ist *DAS* Layout!
:-)
>Ich nutze ein JPanel um eine Dateiliste anzuzeigen.
>Als Layout habe ich das GridBagLayout gewaehlt.
>
>In jeder Zeile meines Panel liegen zwei JLabel,
>eines enthaelt den Dateinamen, ein weiteres die
>Groesse der Datei.
>
>Bei wenigen Dateien ist alles kein Problem,
>aber bei mehr als 500 Zeilen gibt es eine
>supertolle:
>ArrayIndexOutOfBoundsException (siehe unten)
Das könnten ja auch tausende Dateien werden...
[...]
>Wer weiss denn was das bedeutet?
Ja ich. Du willst eine JTable verwenden.
Dann kannst du auch einfach noch mal das Datum oder
Attribute hinzufügen.
Peter