Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Probleme mit Code-Guru Beispiel

0 views
Skip to first unread message

Thomas Wilhelmi

unread,
Aug 2, 2001, 6:30:17 AM8/2/01
to
Hallo,

es wurde ja schon mehrfach gefragt wie es geht eine
JTable zu machen, bei der einzelne Header-Zellen
über mehrere tabellen-Zellen gehen. Dazu wurde auf
ein Beispiel auf www.codeguru.com/java
verwiesen. Dort habe ich mir das Beispiel angesehen
und beim ersten durchlesen noch nicht verstanden.
Auch beim zweiten nicht. Bin ja auch noch nicht
lange bei Java dabei. Also habe ich mir die Klassen
geholt und wollte sie selbst ausführen und dann damit
rumspielen und experimentieren. Aber das ausführen
des originalen Codes führt bei mir zu einer
NullPointerException.

Hat jemand einen unter JDK 1.3.1 auf W2K funktionierenden
Code für so etwas?

Vielen Dank und Ciao,
Willi

Andreas Jaeger

unread,
Aug 2, 2001, 7:31:34 AM8/2/01
to
Thomas Wilhelmi wrote:

> Hat jemand einen unter JDK 1.3.1 auf W2K funktionierenden
> Code für so etwas?
>

Schreib lieber mal die vollständige Nullpointer-Exception
und welches Beispiel genau Du genommen hast.


Thomas Wilhelmi

unread,
Aug 2, 2001, 7:45:39 AM8/2/01
to

> Schreib lieber mal die vollständige Nullpointer-Exception
> und welches Beispiel genau Du genommen hast.

Null Problemo.

Ich habe das Beispiel "Multi-Span Header" genommen. Zu
finden unter: http://www.codeguru.com/java/articles/125.shtml

Die Helper-Klassen sind zu finden unter:
http://www.codeguru.com/java/articles/124.shtml

Die Exception ist:

Exception in thread "main" java.lang.NullPointerException
at
GroupableTableHeaderUI.getHeaderHeight(GroupableTableHeaderUI.java:89)
at
GroupableTableHeaderUI.createHeaderSize(GroupableTableHeaderUI.java:110)
at
GroupableTableHeaderUI.getPreferredSize(GroupableTableHeaderUI.java:120)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at javax.swing.ViewportLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at javax.swing.ScrollPaneLayout.layoutContainer(Unknown Source)
at java.awt.Container.layout(Unknown Source)
at java.awt.Container.doLayout(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validate(Unknown Source)
at java.awt.Window.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at MultiWidthHeader.main(MultiWidthHeader.java:61)

Ciao,
Willi

Andreas Jaeger

unread,
Aug 2, 2001, 8:38:51 AM8/2/01
to
> > Schreib lieber mal die vollständige Nullpointer-Exception
> > und welches Beispiel genau Du genommen hast.
>
> Ich habe das Beispiel "Multi-Span Header" genommen. Zu
> finden unter: http://www.codeguru.com/java/articles/125.shtml
>
> Die Helper-Klassen sind zu finden unter:
> http://www.codeguru.com/java/articles/124.shtml
>

Die Beispiele arbeiten mit einer älteren Swing-Version. Der Unterschied ist
folgender:

JDK1.3:

TableColumn.getHeaderRenderer
-------------------------------------
public TableCellRenderer getHeaderRenderer()

Returns the TableCellRenderer used to draw the header of the TableColumn. When the
headerRenderer is null, the JTableHeader
uses its defaultRenderer. The default value for a headerRenderer is null.
Returns:
the headerRenderer property

JDK1.2:

TableColumn.getHeaderRenderer
-------------------------------------

public TableCellRenderer getHeaderRenderer()

Returns the TableCellRenderer used to draw the header of the TableColumn. The default header
renderer is a JCellRenderer initialized with a
JLabel.
Returns:
the TableCellRenderer used to draw the header

Mußt Dir jetzt raussuchen, ob Du den Beispielcode dahingehend abgrasen
willst, daß alle aColumn.getRenderer() ersetzt werden, z.B. mit Aufruf des
DefaultRenderers von GroupableTableHeader (dort muß das dann implementiert
werden), oder ob Du manuell allen Columns einen Renderer zuweist. Letzteres
erhält Dir womöglich die Chance, noch am Renderer zu drehen (wobei ich es
nicht genau weiß, was die GroupableTablleHeaderUI da macht und wozu es
überhaupt die ursprünglichen Renderer abfragt). Andererseits fängst Du dann
bei jeder Tabelle wieder an, die HeaderRenderer für jede Spalte zu erzeugen.

Oder Du nimmst einfach JDK1.2 ;-)

Andreas

Thomas Wilhelmi

unread,
Aug 2, 2001, 8:45:35 AM8/2/01
to
> Die Beispiele arbeiten mit einer älteren Swing-Version. Der Unterschied
ist
> folgender:

Danke. Das erklärt es.

> Oder Du nimmst einfach JDK1.2 ;-)

Das ist zum spielen und üben erst mal sicher richtig. Aber später
soll das Ganze dann in ein bis auf kleine GUI-Feinheiten fertiges
Programm eingebaut werden. Und das läuft unter 1.3.1.

Jedenfalls vielen Dank und Grüße,
Willi

0 new messages