NullPointerException in einer JList

Status
Nicht offen für weitere Antworten.

Alex_winf01

Top Contributor
Auf meine Frage nach verbundenen Zellen hat mir André Uhres freundlicher Weise folgenden Link gegeben:
GroupableHeader

Dieses Beispiel habe ich jetzt ausprobiert und bekomme eine NullPointerException
at GroupableTableHeaderUI createHeaderHeigt(Groupable TableHeaderUI.java 89)
at GroupableTableHeaderUI.getPreferredSize

Ich vermute, dass irgendwo Null-Werte übergebe. Kann mir jemand weiterhelfen?
 

SnooP

Top Contributor
ohne mehr relevanten Code wohl kaum...

mach System.outs vor den entsprechenden Aufrufen und verfolge den null-wert zurück - mehr kann man nicht machen. Ist aber sehr effektiv ;)

oder aber du benutzt nen debugger - damit geht das genausogut... liefert auf jeden Fall bessere Ergebnisse als wenn wir ins blaue raten ;)
 

Alex_winf01

Top Contributor
Danke schon mal für Deine Antwort.

Hier ist der Code:

Code:
    // File: GroupableHeaderExample.java
    //
    /* (swing1.1beta3)
     *
     * |-----------------------------------------------------|
     * |	|	Name	  |	    Language	     |
     * |	|-----------------|--------------------------|
     * |  SNo.	|	 |	  |	   |	  Others     |
     * |	|   1	 |    2   | Native |-----------------|
     * |	|	 |	  |	   |   2    |	3    |	
     * |-----------------------------------------------------|
     * |	|	 |	  |	   |	    |	     |
     *
     */
    //package jp.gr.java_conf.tame.swing.examples;

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;

    //import jp.gr.java_conf.tame.swing.table.*;
     
    /**
     * @version 1.0 11/09/98
     */
    public class GroupableHeaderExample extends JFrame {

      GroupableHeaderExample() {
    	super( "Groupable Header Example" );

        DefaultTableModel dm = new DefaultTableModel();
    	dm.setDataVector(new Object[][]{
    	  {"119","foo","bar","ja","ko","zh"},
    	  {"911","bar","foo","en","fr","pt"}},
    	new
    Object[]{"SNo.","1","2","Native","2","3"});

        JTable table = new JTable( dm ) {
    	  protected JTableHeader createDefaultTableHeader() {
    	    return new GroupableTableHeader(columnModel);
    	  }
    	};
    	TableColumnModel cm = table.getColumnModel();
    	ColumnGroup g_name = new ColumnGroup("Name");
    	g_name.add(cm.getColumn(1));
    	g_name.add(cm.getColumn(2));
    	ColumnGroup g_lang = new ColumnGroup("Language");
    	g_lang.add(cm.getColumn(3));
    	ColumnGroup g_other = new ColumnGroup("Others");
    	g_other.add(cm.getColumn(4));
    	g_other.add(cm.getColumn(5));
    	g_lang.add(g_other);
    	GroupableTableHeader header = (GroupableTableHeader)table.getTableHeader();
    	header.addColumnGroup(g_name);
    	header.addColumnGroup(g_lang);
    	JScrollPane scroll = new JScrollPane( table );
    	getContentPane().add( scroll );
    	setSize( 400, 120 );   
      }

      public static void main(String[] args) {
    	GroupableHeaderExample frame = new GroupableHeaderExample();
    	frame.addWindowListener( new WindowAdapter() {
    	  public void windowClosing( WindowEvent e ) {
    	    System.exit(0);
    	  }
    	});
    	frame.setVisible(true);
      }
    }

Code:
// File: GroupableTableHeaderUI.java
//
/*
 * (swing1.1beta3)
 * 
 */

//package jp.gr.java_conf.tame.swing.table;


import java.util.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.plaf.basic.*;



public class GroupableTableHeaderUI extends BasicTableHeaderUI {
  
  public void paint(Graphics g, JComponent c) {
	Rectangle clipBounds = g.getClipBounds();
	if (header.getColumnModel() == null) return;
	((GroupableTableHeader)header).setColumnMargin();
	int column = 0;
	Dimension size = header.getSize();
	Rectangle cellRect  = new Rectangle(0, 0, size.width, size.height);
	Hashtable h = new Hashtable();
	int columnMargin = header.getColumnModel().getColumnMargin();
	
	Enumeration enumeration = header.getColumnModel().getColumns();
	while (enumeration.hasMoreElements()) {
	  cellRect.height = size.height;
	  cellRect.y	  = 0;
	  TableColumn aColumn = (TableColumn)enumeration.nextElement();
	  Enumeration cGroups = ((GroupableTableHeader)header).getColumnGroups(aColumn);
	  if (cGroups != null) {
	    int groupHeight = 0;
	    while (cGroups.hasMoreElements()) {
	      ColumnGroup cGroup = (ColumnGroup)cGroups.nextElement();
	      Rectangle groupRect = (Rectangle)h.get(cGroup);
	      if (groupRect == null) {
		groupRect = new Rectangle(cellRect);
		Dimension d = cGroup.getSize(header.getTable());
		groupRect.width  = d.width;
		groupRect.height = d.height;	
		h.put(cGroup, groupRect);
	      }
	      paintCell(g, groupRect, cGroup);
	      groupHeight += groupRect.height;
	      cellRect.height = size.height - groupHeight;
	      cellRect.y      = groupHeight;
	    }
	  }	 
	  cellRect.width = aColumn.getWidth() + columnMargin;
	  if (cellRect.intersects(clipBounds)) {
	    paintCell(g, cellRect, column);
	  }
	  cellRect.x += cellRect.width;
	  column++;
	}
  }

  private void paintCell(Graphics g, Rectangle cellRect, int columnIndex) {
	TableColumn aColumn = header.getColumnModel().getColumn(columnIndex);
	TableCellRenderer renderer = aColumn.getHeaderRenderer();
	Component component = renderer.getTableCellRendererComponent(
	  header.getTable(), aColumn.getHeaderValue(),false, false, -1, columnIndex);
	rendererPane.add(component);
	rendererPane.paintComponent(g, component, header, cellRect.x, cellRect.y,
				    cellRect.width, cellRect.height, true);
  }

  private void paintCell(Graphics g, Rectangle cellRect,ColumnGroup cGroup) {
	TableCellRenderer renderer = cGroup.getHeaderRenderer();
	Component component = renderer.getTableCellRendererComponent(
	  header.getTable(), cGroup.getHeaderValue(),false, false, -1, -1);
	rendererPane.add(component);
	rendererPane.paintComponent(g, component, header, cellRect.x, cellRect.y,
				    cellRect.width, cellRect.height, true);
  }

  private int getHeaderHeight() {
	int height = 1;
	TableColumnModel columnModel = header.getColumnModel();
	for(int column = 0; column < columnModel.getColumnCount(); column++) {
	  TableColumn aColumn = columnModel.getColumn(column);
	  TableCellRenderer renderer = aColumn.getHeaderRenderer();
	  Component comp = renderer.getTableCellRendererComponent(
	    header.getTable(), aColumn.getHeaderValue(), false, false,-1, column);
	  int cHeight = comp.getPreferredSize().height;
	  Enumeration enum = ((GroupableTableHeader)header).getColumnGroups(aColumn);	   
	  if (enum != null) {
	    while (enum.hasMoreElements()) {
	      ColumnGroup cGroup = (ColumnGroup)enum.nextElement();
	      cHeight += cGroup.getSize(header.getTable()).height;
	    }
	  }
	  height = Math.max(height, cHeight);
	}
	return height;
  }

  
  private Dimension createHeaderSize(long width) {
	TableColumnModel columnModel = header.getColumnModel();
	width += columnModel.getColumnMargin() * columnModel.getColumnCount();
	if (width > Integer.MAX_VALUE) {
	  width = Integer.MAX_VALUE;
	}
	return new Dimension((int)width, getHeaderHeight());
  }

  public Dimension getPreferredSize(JComponent c) {
	long width = 1;
	Enumeration enumeration = header.getColumnModel().getColumns();
	while (enumeration.hasMoreElements()) {
	  TableColumn aColumn = (TableColumn)enumeration.nextElement();
	  width = width + aColumn.getPreferredWidth();
	}
	return createHeaderSize(width);
  }
}

Das Beispiel beinhaltet noch zwei weitere Dateien, die ich der Übersichtshalber hier nicht mit angebe.
 

Alex_winf01

Top Contributor
Mit System.out.println()-Ausgaben kann ich leider nicht dienen, da er gleich in die Nullpointer-Exception reinläuft. :(
 

Alex_winf01

Top Contributor
Hier die Fehlermeldung:


]NullPointerException[/url]

Ich muss dazusagen: Den Container (also das Fenster selber) wird angezeigt - nur ohne Inhalt.
 

SnooP

Top Contributor
vor allem wäre wichtig zu wissen in welcher zeile code deines oben geposteten ;) - die fehlermeldung auftritt... weil die zeilenangaben vermutlich nicht übereinstimmen, oder doch?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X NullPointerException beim Einfügen einer JMenuBar AWT, Swing, JavaFX & SWT 4
_user_q Objekte vom MainController in anderen Controller verwenden und andersherum (NullPointerException) AWT, Swing, JavaFX & SWT 14
Jose05 Nullpointerexception bei toArray() AWT, Swing, JavaFX & SWT 9
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
J Java FX NullPointerException, ObservableList wird in View nicht angezeigt.. AWT, Swing, JavaFX & SWT 34
N Nur bei einem Textfiled Nullpointerexception bei getText() AWT, Swing, JavaFX & SWT 1
R NullPointerException beim Start des Fensters AWT, Swing, JavaFX & SWT 1
D JavaFX Nullpointerexception wegen TableView AWT, Swing, JavaFX & SWT 2
ZH1896ZH JavaFX kann NullPointerException nicht auflösen... :( AWT, Swing, JavaFX & SWT 3
M NullPointerException / Controller AWT, Swing, JavaFX & SWT 4
R Swing Java9 NullPointerException bei JComboBox AWT, Swing, JavaFX & SWT 13
L java.lang.NullPointerException - Fehlermeldung AWT, Swing, JavaFX & SWT 2
M NullPointerException bei Übergabe eines RadioButtons AWT, Swing, JavaFX & SWT 11
zhermann NullPointerException bei Label.setText() AWT, Swing, JavaFX & SWT 5
it_is_all jLabel.setText -> Char in Str: NullpointerException AWT, Swing, JavaFX & SWT 1
D NullPointerException observableList AWT, Swing, JavaFX & SWT 4
J NullPointerException bei getText() AWT, Swing, JavaFX & SWT 3
S JavaFX NullPointerException bei Versuch ImageView zu ändern AWT, Swing, JavaFX & SWT 1
K JFileChooser NullPointerException AWT, Swing, JavaFX & SWT 7
T Swing NullPointerException beim auslesen von jTextField - Anfänger! AWT, Swing, JavaFX & SWT 3
S Swing [CLOSED] NullPointerException bei BorderLayout() AWT, Swing, JavaFX & SWT 8
G Swing NullPointerException und JXImageView AWT, Swing, JavaFX & SWT 4
L exception in thread awt-eventqueue-0 java.lang.nullpointerexception AWT, Swing, JavaFX & SWT 2
U Swing NullPointerException trotz Referenz auf Textfield & Button AWT, Swing, JavaFX & SWT 6
L NullpointerException und Probleme mit repaint() AWT, Swing, JavaFX & SWT 11
G JavaFX NullPointerException bei Zugriff auf FXML Element AWT, Swing, JavaFX & SWT 0
K JavaFX Pfad öffen NullPointerException AWT, Swing, JavaFX & SWT 4
H SWT NullPointerException bei Zugriff auf Variablen des Hauptfensters AWT, Swing, JavaFX & SWT 6
L Event Handling windowAdapter - NullPointerException beim Schließen AWT, Swing, JavaFX & SWT 5
J JTable verursacht NullPointerException.Ratlos. AWT, Swing, JavaFX & SWT 5
C JButton NullPointerException AWT, Swing, JavaFX & SWT 2
Q getGraphics() - NullPointerException AWT, Swing, JavaFX & SWT 8
C NullPointerException im MVC Muster AWT, Swing, JavaFX & SWT 9
V Nullpointerexception (etwas mit thread und jframe) AWT, Swing, JavaFX & SWT 3
M JTable Drucken NullpointerException +JTable speichern AWT, Swing, JavaFX & SWT 6
T Swing Laden eines Icons auf JButton liefert NullPointerException AWT, Swing, JavaFX & SWT 8
M Exception in thread "Thread-3" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 18
C Swing NullPointerException beim Hinzufügen von Checkboxes in eine ArrayList AWT, Swing, JavaFX & SWT 5
1 JComponent -> java.lang.NullPointerException AWT, Swing, JavaFX & SWT 13
B Swing NullPointerException bei actionPerformed() AWT, Swing, JavaFX & SWT 2
E java.lang.NullPointerException AWT, Swing, JavaFX & SWT 14
R NullPointerException AWT, Swing, JavaFX & SWT 16
xehpuk Swing NullPointerException: Random-Instanz anfangs nicht initialisiert AWT, Swing, JavaFX & SWT 4
3 Swing NullPointerException in AW Event-0? AWT, Swing, JavaFX & SWT 5
C SWT NullPointerException AWT, Swing, JavaFX & SWT 12
J NullPointerException bei Benutzung vom TableCellRenderer AWT, Swing, JavaFX & SWT 3
A AWT Methodenaufruf "AWT-EventQueue-0" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 4
B NullPointerException bei JFrame AWT, Swing, JavaFX & SWT 2
D JPanel / NullPointerException AWT, Swing, JavaFX & SWT 4
G LookAndFeel Dynamisches Einlesen von LookAndFeels - NullPointerException AWT, Swing, JavaFX & SWT 4
E Login wird durch NullPointerException abgebrochen AWT, Swing, JavaFX & SWT 10
K NullPointerException ohne CodeLink AWT, Swing, JavaFX & SWT 6
L NullPointerException JFreeChart AWT, Swing, JavaFX & SWT 10
F NullPointerException - HILFE!! AWT, Swing, JavaFX & SWT 20
martinyyyy AWT Parameter erzeugen NullpointerException obwohl sie vorhanden sind? AWT, Swing, JavaFX & SWT 4
H Swing NullPointerException in JTable bei vielen Einträgen AWT, Swing, JavaFX & SWT 2
S Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 7
S NullPointerException bei JFileChooser AWT, Swing, JavaFX & SWT 8
X JList Probleme mit NullPointerException AWT, Swing, JavaFX & SWT 3
S NullPointerException bei Aufruf von updateUI() beim JFrame AWT, Swing, JavaFX & SWT 12
Z NullPointerException bei SplashScreen AWT, Swing, JavaFX & SWT 5
C NullPointerException bei Doppelpufferung AWT, Swing, JavaFX & SWT 3
F CardLayout.show() -> NullPointerException AWT, Swing, JavaFX & SWT 4
B NullPointerException bei String vergleich AWT, Swing, JavaFX & SWT 5
K NullPointerException bei JTextField AWT, Swing, JavaFX & SWT 8
L Problem mit "NullPointerException" bei grafischer AWT, Swing, JavaFX & SWT 3
D bei Thread in JComponent malen NullPointerException AWT, Swing, JavaFX & SWT 3
loadbrain JTextFields & java.lang.NullPointerException AWT, Swing, JavaFX & SWT 2
F JProgressBar und NullPointerException AWT, Swing, JavaFX & SWT 4
D javax.swing.Timer bringt NullPointerException AWT, Swing, JavaFX & SWT 4
R TextField bringt NullPointerException bei setVisible() AWT, Swing, JavaFX & SWT 12
F Fehler: java.lang.NullPointerException AWT, Swing, JavaFX & SWT 2
S Brauche Hilfe mit JFrame - NullPointerException AWT, Swing, JavaFX & SWT 7
A NullPointerException - warum? AWT, Swing, JavaFX & SWT 5
G NullPointerException bei Aufruf von JTabbedPane.getSelectedI AWT, Swing, JavaFX & SWT 7
G Problem mit NullPointerException AWT, Swing, JavaFX & SWT 11
M JTable verursacht NullPointerException AWT, Swing, JavaFX & SWT 8
M NullPointerException AWT, Swing, JavaFX & SWT 3
J NullPointerException bei getSelectedItem AWT, Swing, JavaFX & SWT 10
G Bekomme immer: NullPointerException AWT, Swing, JavaFX & SWT 2
MiMa Optimieren einer Methode zum Zentrieren von Fenstern AWT, Swing, JavaFX & SWT 0
T VerifyListener - Ersetzen einer 0 AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
H JavaFX Timeline II: Verschieben einer ImageView AWT, Swing, JavaFX & SWT 16
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
L Swing TextPanel Schrift untereinander und auf einer Höhe AWT, Swing, JavaFX & SWT 3
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
Ernesto95 JavaFX Return Value nach Beendigung einer Animation AWT, Swing, JavaFX & SWT 15
melaniemueller Wortliste in einer Datei ablegen AWT, Swing, JavaFX & SWT 12
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
U Was genau ist das Objekt einer affinentransformation? AWT, Swing, JavaFX & SWT 1
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben