NullPointerException bei Benutzung vom TableCellRenderer

J

javadarter

Gast
Hallo,
ich habe leider ein problem mit meiner jtable.
ich will eine jtable erzeugen, bei welcher in jeder zelle 3 zeilen vorhanden sind. nun habe ich unter
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 16.18 Tabellen (JTable)
bei
jtable -> Ein eigener Renderer für Tabellen -> mehrzeilige tabellenzellen
gelesen, wie man dies realisieren kann.
also habe ich mir auch einen CellRenderer gebastelt, der von JTextArea erbt und TableCellRenderer implementiert.

sobald ich mir jedoch meine Jtable erzeuge (auch eine von JTable umgeschriebene klasse) und dieser mit
jt.setDefaultRenderer(Object.class, new MyCellRenderer());
meinen CellRenderer übergebe, gibt es eine NullpointerException

hier mein code:

MyCellRenderer:
Java:
class MyCellRenderer extends JTextArea implements TableCellRenderer{

		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, 
                boolean hasFocus, int row, int column) {
		
		   setText( value.toString() );    // Value kann String mit \n enthalten 
			 
		     return this;
			
			}
		
	}

MyTable:
Java:
public class MyTableModel extends DefaultTableModel implements Serializable,TableModel{
		
		public MyTableModel(Vector values, Vector header) {
		}
		
		public MyTableModel(int columns, int rows) {
		}
		
		@Override
		public boolean isCellEditable(int row, int column) {
			return false;
	    }
		
		@Override
		public int getRowCount() {
			return 11;
		}
		
		@Override
		public int getColumnCount() {
			return 7;
		}
		
	}

Erzeugung der JTable mit den geänderten Zellen:
Java:
MyTableModel tm= new MyTableModel(tableValues(),tableHeader());

JTable jt=new JTable(tm);

jt.setDefaultRenderer(Object.class, new MyCellRenderer());   // <= wegen dieser zeile wird 
                                                                                   // die NullPointerException aufgerufen
jt.setValueAt("ß\nvß\nRiwi t", 0, 1);  // <=  hier soll beispielsweise dieser 
                                                  //  dreizeilige text in die zelle geschrieben werden

jt.setFocusable(false);
jt.setRowHeight(53);
jt.setAutoResizeMode(MAXIMIZED_BOTH);
jt.setColumnSelectionAllowed(false);
jt.setRowSelectionAllowed(false);
jt.setTableHeader(null);
JScrollPane jsp=new JScrollPane(jt);

this.add(jsp);

tableHeader() und tableValues() sind Methoden, die einen Vektor zurückliefern.

es soll hier eine Jtable mit bestimmter statischer anzahl an Zeilen und Spalten (11,7) entstehen, in welcher werte reingeschrieben werden und in welcher keine zellen editiert werden können. diese tabelle soll nur zur anzeige dienen. die dreizeilige zelle war eine meiner vorgaben für das aussehen der tabelle.
es könnte auch sein, dass es an meine MyTable-klasse liegt, dass es nicht funktioniert.

ich würde mich sehr freuen, wenn mir jemand weiterhelfen kann.

mfg,
javadarter
 

ymene

Bekanntes Mitglied
Dein Problem dürfte nicht beim Adden des CellRenderers entstehen, sondern beim Aufruf der getTableCellRendererComponent deines Renderers. Diese wird ständig vom CellRenderer aufgerufen und da du in deinem TableModel keine Daten hast, steht überall der Wert 'null' drin.

Dadurch wird im Renderer .toString() auf 'null' aufgerufen, was natürlich nicht möglich ist, weswegen eine NullPointer geworfen wird.

Um das zu umgehen, kannst du zunächst mal einen nullCheck im Renderer einbauen:

Java:
if( value != null )
{
    setText( value.toString() );
}
 

javalicious3

Mitglied
(war beim schreiben des beitrags eben leider nicht angemeldet und hatte den falschen benutzernamen angegeben :p, ist mein erster beitrag)

habe es eig vorher auch schonmal auf diese weise probiert und es hatte nicht geklappt. gerade habe ich es einfach noch einmal probiert und es hat funktioniert.
vllt war es auch meine nachlassende konzentration, da ich länger versucht hatte das problem zu beseitigen.

aber wahrscheinlich war es eine kleine unachtsamkeit...

wo setze ich die schriftgrösse, Position des strings innerhalb der zelle (wollte es zentrieren) und die fonts?
beim Cellrenderer oder beim CellEditor?

mfg,
javalicious3
 
Zuletzt bearbeitet:

ymene

Bekanntes Mitglied
javalicious3 hat gesagt.:
wo setze ich die schriftgrösse, Position des strings innerhalb der zelle (wollte es zentrieren) und die fonts?
beim Cellrenderer oder beim CellEditor?

Da du meintest, du würdest die Zellen nicht editieren wollen, fällt der CellEditor automatisch schonmal raus, da dieser nur in Anspruch genommen wird, wenn man den Inhalt manuell innerhalb der Tabelle editieren möchte. Somit im Renderer, sprich in der JTextArea. Lies dir vielleicht noch einmal das Kapitel in der Javainsel durch, hilft ungemein in der anfänglichen Orientierung :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
_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
A AWT Methodenaufruf "AWT-EventQueue-0" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 4
X NullPointerException beim Einfügen einer JMenuBar 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
A NullPointerException in einer JList AWT, Swing, JavaFX & SWT 7
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
S JavaFX Slider freezt nach Benutzung AWT, Swing, JavaFX & SWT 3
J JavaFX Mehrfache Benutzung von Methoden einer Klasse AWT, Swing, JavaFX & SWT 17
M JTextField gesperrt nach erster Benutzung... AWT, Swing, JavaFX & SWT 4
C AWT drawArc/ fillArc Problem mit Benutzung AWT, Swing, JavaFX & SWT 5
B TableCellRenderer rendert Integer/Boolean Felder nicht AWT, Swing, JavaFX & SWT 4
M Swing TableCellRenderer elegant anpassen AWT, Swing, JavaFX & SWT 3
D Swing Mit TableCellRenderer einzelne Zellen markieren AWT, Swing, JavaFX & SWT 3
O Swing TableCellRenderer und JComboBox AWT, Swing, JavaFX & SWT 4
C Swing TableCellRenderer: setText() vs. setIcon() AWT, Swing, JavaFX & SWT 5
E Swing TableCellRenderer für alle Splaten setzen?! AWT, Swing, JavaFX & SWT 3
M gleicher TableCellRenderer für mehrere unterschiedliche Tabellen AWT, Swing, JavaFX & SWT 5
A Swing TableCellRenderer ändert die Zeilenfarbe zu spät AWT, Swing, JavaFX & SWT 3
J Swing JTable, eigener TableCellRenderer Keine Anzeige in den Zellen AWT, Swing, JavaFX & SWT 8
U TableCellRenderer: Problem mit Timestamp/Date AWT, Swing, JavaFX & SWT 2
U TableCellRenderer UND prepareRenderer AWT, Swing, JavaFX & SWT 12
C Swing TableCellRenderer AWT, Swing, JavaFX & SWT 10
U TableCellRenderer und setBackground AWT, Swing, JavaFX & SWT 20
H Swing TableCellRenderer für verschiedene Spalten AWT, Swing, JavaFX & SWT 11
C Swing Problem mit TableCellRenderer in Verbindung mit TableRowSorter AWT, Swing, JavaFX & SWT 2
R JTable - TableCellRenderer AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben