TableCellRenderer deaktivieren

Status
Nicht offen für weitere Antworten.

SaschaLR

Bekanntes Mitglied
Hallo Leute!

Ich habe das Problem, dass mein selbstgeschriebener TableCellRenderer, der ein JLabel liefert, manchmal ins Leere greift und eine ArrayIndexOutOfBoundsException liefert. Der Hintergrund dafür lässt sich leider nicht abändern ...

Jetzt habe ich mich gefragt, ob ich den Renderer inaktiv setzen kann ... damit die Methode getTableCellRendererComponent nicht aufgerufen wird, obwohl der Renderer dem Table bekannt ist. Es muß wirklich verhindert werden, dass die Methode aufgerufen wird, und zwar zu jedem beliebigen Zeitpunkt muss sie ein- und ausgeschlatet werden können! Geht sowas? myRenderer.setEnabled(false) funktioniert dafür nicht!

Ich denke auch, dass ich dem Table sagen muss, er soll nicht versuchen zu rendern, als dem Renderer zu sagen er soll seine Arbeit nicht tun... oder?

Dank und Gruß,
Sascha
 

Mag1c

Top Contributor
Hi Sascha,

du willst aber nicht gleichzeitig die Daten in der Tabelle sehen, nein ? Die Tabelle braucht den Renderer für die Darstellung ... und zwar ständig. Da reicht schon ein bisschen mit der Maus rumfuchteln aus.

Wieso kannst du nicht immer einen Renderer liefern ? Das finde ich merkwürdig. Daß nicht immer alle Daten da sind - ok, aber den Renderer muß man schon liefern.

Gruß
Mag1c
 

Sky

Top Contributor
Verstehe dein Problem überhaupt nicht! Wieso gibt es eine ArrayIndexOutOfBoundsException in einem Renderer und warum ist das ein unlösbares Problem!?

Naja unabhängig davon kann man
a) einen try-catch-Block machen, der halt einen leeren String, einen Fehler oder irgendwas anderes zurück liefert.
b) einen Renderer implementieren, der die Methode setEnabled besitzt und im Falle 'inaktiv' einfach ein leeres JLabel liefert.
 

SaschaLR

Bekanntes Mitglied
@Mag1c ich habe immer einen Renderer ... aber der liefert mir bei der Initialisierung gelegentlich eine Exception wenn getTableCellRendererComponent() aufgerufen wird!

@Sky die Exception is in der Table, aber durch den Renderer ausgelöst. Jedenfalls sieht es für mich so aus. Und das Problem ist nicht der Render an sich, sondern, dass der Renderer versucht auf Daten zuzugreifen, die grad nicht exisitert, erst ein oder zwei Sekunden später!!!

Kann ja gut sein, dass ich mich an irgendeiner Stelle täusche. Aber wenn ich erst nach der Initialisierung einen Renderer setze bekomme ich die Exception nicht.

Ich möchte nicht dass der Renderer irgendwas anders macht als sonst, ich möchte verhindern, dass er aufgerufen wird (zu bestimmten Zeiten jedenfalls). Bitte konzentriert euch auf diese Problemstellung :)

Gruß Sascha
 

thE_29

Top Contributor
Poste mal den Renderer und du wirst die Exception hat einen Grund...

Es gibt keinen Fehler der einfach "so" Auftritt...
 

AlArenal

Top Contributor
@sascha:

Man sollte seinen Krims auch so bauen, dass auch ohne Daten in nden Models alles läuft. Sprich: Immer schön prüfen ob was da ist (null, 0, ....)...
 

SaschaLR

Bekanntes Mitglied
SaschaLR hat gesagt.:
Ich möchte nicht dass der Renderer irgendwas anders macht als sonst, ich möchte verhindern, dass er aufgerufen wird (zu bestimmten Zeiten jedenfalls). Bitte konzentriert euch auf diese Problemstellung :)
Gruß Sascha

Geht das? :)
 
R

Roar

Gast
du kannst den cellrender nicht "deaktivieren". entweder du setzt ihn null, dann wird der defaultrenderer benutzt, oder du überprüfst halt selbst in deinem renderer ob er was zurückgeben soll.

das alles lenkt aber trotzdem nicht von der tatsache ab, dass dein renderer schmuh is wenner exceptions wirft.
 

SaschaLR

Bekanntes Mitglied
@Roar: Danke für die Antwort! Endlich mal was konkretes, endlich eine Antwort auf die Frage!!!!! :)

Hast sicherlich recht, dass es nicht fein ist .. die Lösung ist halt bisher noch nicht Threadsafe!

Gruß Sascha
 

Mag1c

Top Contributor
Hi Sascha,

es ist mir nun mal ein inneres Bedürfnis, dem wahren Fehler auf den Grund zu gehen und es widerstrebt mir, dabei zu helfen, den Fehler mit einem grausamen Workarround zu begraben :roll:

Und nebenbei, wenn das TableModel angibt, daß soundso viele Zeilen und Spalten da sind, dann hat das TableModel gefälligst die Daten zu liefern. Sollten aus irgend einem Grund Daten noch nicht vorhanden sein, so ist es Aufgabe des TableModel's, einen Platzhalter zu liefern (kann auch null sein), welchen der Renderer dann passend anzuzeigen hat.

So, nun laß dir helfen und poste was über den eigentlichen Fehler :wink:

Gruß
Mag1c
 

Exceptionist

Aktives Mitglied
sollte dieses posting zu banal sein, bitte ich darum, daß es gelöscht wird!


also ich hab mich mit der ganzen problematik noch nicht selber beschäftigt, aber wenn du doch weisst, was die exception hervorruft, dann kannst du diese bedingung doch vorab überprüfen oder nicht??

wenn also die bedingung erfüllt ist und die exception geworfen würde, kannst du doch ganz einfach dieses problem abfangen, indem du nichts machen lässt...

reicht da nicht eine ganz einfache if-abfrage?
 

SaschaLR

Bekanntes Mitglied
Das Problem an der Sache war, dass ich eine gekaufte Komponente von jemandem anders benutzen musste um eine Art "Vorabversion" fertigzustellen.

De, der das Ding gebaut hat war halt auch nicht der Allerbeste und seinen Code abändern war auch nicht drin.

In Kürze wird jedoch seine Komponente durch eine vernünftige, von mir entwickelte, ersetzt - und da wird es nicht zu solchen Problemen kommen! :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
J NullPointerException bei Benutzung vom TableCellRenderer AWT, Swing, JavaFX & SWT 3
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
R JTable - TableCellRenderer - BufferedImage AWT, Swing, JavaFX & SWT 9
S TableCellRenderer: JLabel-Background in JPanel AWT, Swing, JavaFX & SWT 7
R JTable mit TableCellRenderer AWT, Swing, JavaFX & SWT 10
R JTable - TableCellRenderer AWT, Swing, JavaFX & SWT 2
D TableCellRenderer rendert einfach nicht! AWT, Swing, JavaFX & SWT 4
S TableCellRenderer setForeground AWT, Swing, JavaFX & SWT 5
I Problem mit TableCellRenderer AWT, Swing, JavaFX & SWT 3
K TableCellRenderer Problem AWT, Swing, JavaFX & SWT 3
F TableCellRenderer wie umsetzen? AWT, Swing, JavaFX & SWT 2
D JTable TableCellRenderer AWT, Swing, JavaFX & SWT 2
J JTable und TableCellRenderer AWT, Swing, JavaFX & SWT 2
G TableCellRenderer Background variiert darstellen AWT, Swing, JavaFX & SWT 3
P TableCellRenderer mit einem TableRowSorter AWT, Swing, JavaFX & SWT 4
D TableCellRenderer PRoblem AWT, Swing, JavaFX & SWT 3
G TableCellRenderer soll ganze ausgewählte Zeile markieren AWT, Swing, JavaFX & SWT 2
J TableCellRenderer AWT, Swing, JavaFX & SWT 5
S JTree mal anders (TableCellRenderer) AWT, Swing, JavaFX & SWT 6
S TableCellRenderer, Performance AWT, Swing, JavaFX & SWT 9
M Objekt in TableCellRenderer packen, warum ein Fehler? AWT, Swing, JavaFX & SWT 2
T TableCellRenderer Problem AWT, Swing, JavaFX & SWT 6
B TableCellRenderer + JComboBoxen AWT, Swing, JavaFX & SWT 2
_user_q JavaFX Wie kann ich alle Objekte außer eins deaktivieren (das Gleiche mit BoxBlur)? AWT, Swing, JavaFX & SWT 11
missy72 JavaFX CellFactory deaktivieren, oder löschen AWT, Swing, JavaFX & SWT 2
L Swing Fehlerton deaktivieren? AWT, Swing, JavaFX & SWT 4
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
K JavaFX DatePicker - Tage aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 1
L Javafx Datepicker Zukunft deaktivieren AWT, Swing, JavaFX & SWT 3
A Touch-Display deaktivieren (Zeitabhängig) AWT, Swing, JavaFX & SWT 3
F jTabbedPane Tabwechsel deaktivieren AWT, Swing, JavaFX & SWT 2
V RadioButton aktivieren/deaktivieren; Zustand abfragen und wechseln AWT, Swing, JavaFX & SWT 2
C Swing ComboBox - ActionListener deaktivieren AWT, Swing, JavaFX & SWT 2
G JButton deaktivieren greift nicht AWT, Swing, JavaFX & SWT 14
M jtabbedpane aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 13
T Listener in anderen Panel deaktivieren AWT, Swing, JavaFX & SWT 3
J JButtons in aktivieren und deaktivieren AWT, Swing, JavaFX & SWT 3
A LookAndFeel Rollover Effekt bei JTabbedPane deaktivieren (Nimbus) AWT, Swing, JavaFX & SWT 8
M SWT - Fenster "Deaktivieren" AWT, Swing, JavaFX & SWT 2
E Buttons während einer Berechnung deaktivieren AWT, Swing, JavaFX & SWT 6
M Swing JTabbedPane Panels deaktivieren AWT, Swing, JavaFX & SWT 2
T JFileChooser - "Öffnen-Button" aktivieren/deaktivieren möglich??? AWT, Swing, JavaFX & SWT 2
Y JRadioButton soll JTextBox aktivieren UND deaktivieren AWT, Swing, JavaFX & SWT 3
B SWT Buttons aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 3
C Checkbox in Liste deaktivieren und paintComponent explizit aufrufen AWT, Swing, JavaFX & SWT 12
T JmenuItems in JPopupMenu kontextabhängig deaktivieren AWT, Swing, JavaFX & SWT 2
K JToggleButton deaktivieren (komplettes event nehmen) AWT, Swing, JavaFX & SWT 2
T JTable: editieren bei Doppelklick deaktivieren, aber... AWT, Swing, JavaFX & SWT 2
algorismi Knoten im JTree deaktivieren AWT, Swing, JavaFX & SWT 4
L Fenster inaktiv setzen / deaktivieren (unable to close window) AWT, Swing, JavaFX & SWT 16
G Swing Fortschrittsbalken im Fenster: Menü deaktivieren / abfangen? AWT, Swing, JavaFX & SWT 27
André Uhres Swing Alle Komponenten eines JPanel aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 4
multiholle [JProgressBar] Raster deaktivieren AWT, Swing, JavaFX & SWT 14
G Wiederholten Tastenanschlag deaktivieren AWT, Swing, JavaFX & SWT 7
M ALT shortcut für JMenuBar deaktivieren AWT, Swing, JavaFX & SWT 3
I JList - Einträge deaktivieren AWT, Swing, JavaFX & SWT 2
V Menüeinträge im DropDown-Menü deaktivieren AWT, Swing, JavaFX & SWT 3
A JList deaktivieren AWT, Swing, JavaFX & SWT 2
Tom299 JTable - Spalten verschieben deaktivieren? AWT, Swing, JavaFX & SWT 3
D JFrame schließen-Button deaktivieren AWT, Swing, JavaFX & SWT 4
N Alle Komponenten eines JPanel aktivieren/deaktivieren? AWT, Swing, JavaFX & SWT 5
G button deaktivieren AWT, Swing, JavaFX & SWT 3
S TAB Taste ändern in Enter und deaktivieren im jTextField AWT, Swing, JavaFX & SWT 5
R Swing - JTable Multiselect deaktivieren AWT, Swing, JavaFX & SWT 2
C Combo-Box deaktivieren AWT, Swing, JavaFX & SWT 4
G JDialog schliessen deaktivieren AWT, Swing, JavaFX & SWT 7
G JRadioButton deaktivieren? AWT, Swing, JavaFX & SWT 6
M JTextPane - Zeilenumbruch verhindern stoppen deaktivieren :) AWT, Swing, JavaFX & SWT 5
U komplette JMenuBar deaktivieren? AWT, Swing, JavaFX & SWT 4
H Komponenten deaktivieren AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben