CheckBox in Tabelle zeichnen

Status
Nicht offen für weitere Antworten.

Vatar

Bekanntes Mitglied
Moin Moin.

Ich habe mir für meine Tabelle einen eigenener CellRenderer geschrieben, der in der dritten Spalte eine JCheckBox malern soll.
Ich weis, dass es dafür die Method
Code:
public Class getColumnClass(int c) {
   return getValueAt(0, c).getClass();        
}// endmethod
Die nützt mir aber nix, denn wenn ich meinen eigenen Renderer und diese MEthode nutze wird nur der Wert true oder false geschrieben (kein CheckBox) und mit dem StandardRenderer hat diese Spalte dann ein anderes Layout (nicht gewünscht).

Deshalb meine Frage, wie kann ich in meinem Renderer vereinbaren, dass wenn die Spalte = 3 (2) ist eine CheckBox gemalert wird je nachdem ob der value true oder false ist.

Mein CellRnderer
Code:
package gui.tables;

import java.awt.Color;
import java.awt.Component;
import java.awt.Font;

import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableCellRenderer;

public class TableCellRenderer extends DefaultTableCellRenderer
{
    
    private Color unselectedForeground; 
    private Color unselectedBackground; 
    
    private Font font = new Font("Arial", Font.BOLD, 12);
    
    
    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) 
    {
        super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column ); 
        
        // gerade Zeilen werden coloriert
        if ( (row % 2) == 0 )
        {
            setBackground( new Color(242, 199, 28));
        }
        // ungerade Zeilen haben weißen Hintergrund
        else if (row % 2 != 0)
        {
            setBackground( Color.WHITE);
        }
		
        // Wenn die aufrufende Klasse den Namen "gui.tables.VehicleTable" hat wird die Schrift der ersten spalte geändert
        if(table.getClass().getName().equals("gui.tables.VehicleTable") && column == 0)
        {
            setFont(font);
        }
        
            
        // TODO    
//		
//            if (isSelected) 
//		{
//			super.setForeground(table.getSelectionForeground());
//			super.setBackground(table.getSelectionBackground());
//		}
//		else 
//		{
//		    super.setForeground((unselectedForeground != null) ? unselectedForeground 
//		                                             : table.getForeground());
//		    super.setBackground((unselectedBackground != null) ? unselectedBackground 
//		                                             : table.getBackground());
//		}
//		
//			setFont(table.getFont());
			
		if (hasFocus) 
		{
			setBorder( UIManager.getBorder("Table.focusCellHighlightBorder") );
			if (table.isCellEditable(row, column)) 
			{
				super.setForeground( UIManager.getColor("Table.focusCellForeground") );
				super.setBackground( UIManager.getColor("Table.focusCellBackground") );
			}// end if
		} 
		
		else 
		{
		    setBorder(noFocusBorder);
		}// end else
		
        
		setValue(value); 
		
		return this;
	}
    
    
}// end class TableCellRenderer

Ist wirklich wichtig, und mit :### komm ich auch nicht weiter.

Thx
 
B

Beni

Gast
Ich hoffe mit "Ist wirklich wichtig, und mit :### komm ich auch nicht weiter. " ist nicht unsere liebe FAQ gemeint.

Dein Renderer wird nie eine Checkbox zeichnen, weil da absolut niergends eine Checkbox ist...

Schreib dein "CheckBoxRenderer" (der eine CheckBox zeichnet), und füg ihn der Tabelle an, indem du
Code:
table.setDefaultRenderer( Boolean.class, new CheckBoxRenderer() );
verwendest.
Das "getColumnClass" solltest du dann so hinschreiben:

Code:
public Class getColumnClass( int c ){
  switch( c ){
    case 0: return String.class; // oder was auch immer
    ...
    case 2:
    case 3: return Boolean.class; // jetzt wird in Column 2 und 3 der CheckBoxRenderer verwendet.

    default: return null;
  }
}

Das hat vorallem auch den Vorteil, dass dein Progi nicht abstürzt, sollte die Tabelle mal leer sein :wink:
 

Vatar

Bekanntes Mitglied
Auf die Idee, dass da so wertvolle Dinge drinstehen, bin ich noch gar nicht gekommen. :lol:

Habt ihr schon mal überlegt ein eigenes Buch rauszubringen, ist nämlich wesentlich besser erklärt als beispielsweise in der JavaInsel.

:applaus: :applaus: :applaus:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Checkbox in einer Tabelle AWT, Swing, JavaFX & SWT 10
L Checkbox in Tabelle AWT, Swing, JavaFX & SWT 6
B JavaFX CheckBox mit ChangeListener AWT, Swing, JavaFX & SWT 1
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
J JavaFx TableView mit CheckBox AWT, Swing, JavaFX & SWT 4
karlmasutra Java FX Checkbox abfragen AWT, Swing, JavaFX & SWT 2
J SceneBuilder TableView Checkbox AWT, Swing, JavaFX & SWT 1
M JAVAFX Checkbox mit URL verlinkung AWT, Swing, JavaFX & SWT 4
A checkbox mit allen tabllen aus datenbank befüllen AWT, Swing, JavaFX & SWT 8
D JIDE TreeComboBox mit checkbox-en kombinieren AWT, Swing, JavaFX & SWT 2
K CheckBox Problem AWT, Swing, JavaFX & SWT 5
Developer_X Java JTable - Combobox + Checkbox - Cellrenderer + Editor AWT, Swing, JavaFX & SWT 3
F JTable mit Checkbox AWT, Swing, JavaFX & SWT 1
T SWT checkbox in table AWT, Swing, JavaFX & SWT 6
M JavaFX TableView mit CheckBox als Boolean AWT, Swing, JavaFX & SWT 5
Z DefaultTableModel + checkbox AWT, Swing, JavaFX & SWT 0
S Swing JTable zusätzliche Spalte mit einer Checkbox einfügen AWT, Swing, JavaFX & SWT 7
A JXTreeTable mit Checkbox AWT, Swing, JavaFX & SWT 2
P Listenelemente über Checkbox löschen AWT, Swing, JavaFX & SWT 6
D Checkbox - Datenbankausgeben AWT, Swing, JavaFX & SWT 31
A Swing JTable benutzt keine Checkbox für Booleans AWT, Swing, JavaFX & SWT 9
M Swing Dropbox / Checkbox in JTable AWT, Swing, JavaFX & SWT 3
D SWT CheckBox auslesen (Window Builder Pro) AWT, Swing, JavaFX & SWT 2
A Swing Bug in Swing? Wenn checkbox disabled reagiert ActionListener nicht AWT, Swing, JavaFX & SWT 5
T disabled Checkbox soll trotzdem Focus bekommen AWT, Swing, JavaFX & SWT 9
C Checkbox-zustände in einem JFrame speichern AWT, Swing, JavaFX & SWT 8
C SWT CheckBox AWT, Swing, JavaFX & SWT 6
B Swing DefaultTableModel, Checkbox in Spalte AWT, Swing, JavaFX & SWT 4
C Checkbox in Liste deaktivieren und paintComponent explizit aufrufen AWT, Swing, JavaFX & SWT 12
N JTable RadioButton statt Checkbox AWT, Swing, JavaFX & SWT 4
Semox Swing Random Checkbox JApplet AWT, Swing, JavaFX & SWT 14
S Checkbox AWT, Swing, JavaFX & SWT 4
Z AWT Auf bestimmte Checkbox einer Checkboxgroup zugreifen AWT, Swing, JavaFX & SWT 3
C jtable checkbox in header / spaltenüberschrift AWT, Swing, JavaFX & SWT 4
T Sprachumstellung per Checkbox, Konzeptfrage AWT, Swing, JavaFX & SWT 16
O CheckBox in Jtable - Listener darauf?? AWT, Swing, JavaFX & SWT 3
W ButtonGroup, Checkbox, A oder B oder gar nix AWT, Swing, JavaFX & SWT 3
G Checkbox AWT, Swing, JavaFX & SWT 7
A Checkbox-Choice Eventproblem (CMV) AWT, Swing, JavaFX & SWT 2
T Checkbox & Textfield AWT, Swing, JavaFX & SWT 5
S Checkbox oder String in JTable-Spalte AWT, Swing, JavaFX & SWT 4
G Checkbox, die eine Endlosschleife ausführt AWT, Swing, JavaFX & SWT 3
R CheckBox drücken, sodass eine Aktion ausgeführt wird AWT, Swing, JavaFX & SWT 5
F Häkchen erscheint nicht bei anklicken von Checkbox in JTable AWT, Swing, JavaFX & SWT 4
T Doppelte Abfrage eine Checkbox vermeiden AWT, Swing, JavaFX & SWT 2
F Checkbox transparent machen ? AWT, Swing, JavaFX & SWT 2
N TableModel mit CheckBox? AWT, Swing, JavaFX & SWT 5
D [JList]Checkbox einbinden ? AWT, Swing, JavaFX & SWT 3
L Checkbox in JTable (again), bei true Daten in Header AWT, Swing, JavaFX & SWT 7
F JTable mit Checkbox macht Probleme AWT, Swing, JavaFX & SWT 4
C Aktion nach Auswahl einer Checkbox AWT, Swing, JavaFX & SWT 6
W CheckBox in Jtree AWT, Swing, JavaFX & SWT 6
G Bild als Checkbox bzw gerasteten Button? AWT, Swing, JavaFX & SWT 3
J jTable + jTextarea & checkbox AWT, Swing, JavaFX & SWT 6
D CheckBox ändert Status nur, wenn sie FocusOwner ist AWT, Swing, JavaFX & SWT 2
C commando mit checkbox AWT, Swing, JavaFX & SWT 5
T selected checkbox AWT, Swing, JavaFX & SWT 2
T Checkbox AWT, Swing, JavaFX & SWT 10
N Checkbox mit mehreren Strings belegen? AWT, Swing, JavaFX & SWT 6
W Kleine Sub-Tabelle in SpreadsheetView-Zelle anzeigen AWT, Swing, JavaFX & SWT 9
K Tabelle zu Datenbank hinzufügen / Apache Derby AWT, Swing, JavaFX & SWT 7
izoards JavaFX editierbare Tabelle AWT, Swing, JavaFX & SWT 4
HoT Sortieren von ein paar Zeilen in einer Tabelle, aber nicht die ganze Tabelle AWT, Swing, JavaFX & SWT 3
H Tabelle in JFrame einfügen AWT, Swing, JavaFX & SWT 1
T Zelle- und die Zeile-Farbenwechsel bei der Selektion in der Tabelle AWT, Swing, JavaFX & SWT 4
T Anbinden der Tabelle an die Daten AWT, Swing, JavaFX & SWT 5
ralfb1105 JavaFX TreeView dynamisch aus Datenbank Tabelle erstellen AWT, Swing, JavaFX & SWT 22
F JavaFX Tabelle mit Daten füllen AWT, Swing, JavaFX & SWT 9
kodela Swing Letzte Änderung in der Tabelle wird nicht gespeichert AWT, Swing, JavaFX & SWT 5
W JavaFX Tabelle zeilenweise mit Werten füllen und an Container anpassen AWT, Swing, JavaFX & SWT 23
F JavaFX Tabelle mit gespeicherten Eingabe Werten AWT, Swing, JavaFX & SWT 8
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
B Zeile einer Tabelle selektieren AWT, Swing, JavaFX & SWT 1
A Swing Tabelle wird bei Betätigung des Button nicht befüllt AWT, Swing, JavaFX & SWT 17
L Dynamischer Aufbau einer Tabelle über Objekte AWT, Swing, JavaFX & SWT 2
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
D Swing JScrollPane Tabelle ändern (2 Tabellen) AWT, Swing, JavaFX & SWT 7
MrSnake Tabelle nach 2 Strings Filtern AWT, Swing, JavaFX & SWT 3
D Filter in Tabelle Sql AWT, Swing, JavaFX & SWT 6
M JavaFX Tabelle flexibler Länge AWT, Swing, JavaFX & SWT 3
T Swing Tabelle mit Button - Anzeigefehler nach Zeile entfernen AWT, Swing, JavaFX & SWT 1
JavaMachtMichFertig JavaFX Gui - Löschbutton in Tabelle anzeigen, die mittels MySQL Abfrage gefüllt wird AWT, Swing, JavaFX & SWT 5
D Swing Breite einer HTML Tabelle in einer JTextPane AWT, Swing, JavaFX & SWT 6
J JavaFX Tabelle soll ganze Seite ausfüllen AWT, Swing, JavaFX & SWT 2
M ausgewählte Inhalt von ListItem inn ComboBox in der Tabelle speichern AWT, Swing, JavaFX & SWT 0
D Swing Eigene Tabelle AWT, Swing, JavaFX & SWT 18
M Filter in die JFace/SWT Tabelle einbauen AWT, Swing, JavaFX & SWT 5
T SWT Mysql Tabelle zeigt immer nur den ersten Wert immer wieder an AWT, Swing, JavaFX & SWT 3
J JavaFX eine Art Tabelle, jedoch mit mehreren Zeilen AWT, Swing, JavaFX & SWT 2
P Swing Klick in Tabelle nicht möglich AWT, Swing, JavaFX & SWT 0
Thallius Swing Tabelle nach Datumsspalte sortieren AWT, Swing, JavaFX & SWT 4
F JavaFX Daten aus Tabelle in ComboBox AWT, Swing, JavaFX & SWT 9
E Tabelle zeigt nicht neuste Datenbankeinträge an AWT, Swing, JavaFX & SWT 5
F SWT Problem mit Tabelle und Combobox in einem Wizard AWT, Swing, JavaFX & SWT 5
D Swing JTable- Meine Tabelle der Klasse JTable wird nur bedingt angezeigt AWT, Swing, JavaFX & SWT 4
O Tabelle "animiert" Scrollen AWT, Swing, JavaFX & SWT 1
R Int aus JSpinner auslesen und Tabelle erstellen AWT, Swing, JavaFX & SWT 3
G JavaFX ComboBoxTableCell für Zuordnung in Tabelle AWT, Swing, JavaFX & SWT 2
B Probleme bei Sortierung einer Tabelle mit DefaultTableModel AWT, Swing, JavaFX & SWT 6
L Tabelle reagiert ungewollt auf Mausklick AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben