JTable für Stundenplan färben

redo088

Mitglied
Hallo,

ich will ein JTable färben lassen für ein Stundenplan. Es müssen zwei Kurse voneinander unterscheiden
lassen durch zwei verschiedene Farben. Man kann den Renderer anwenden, aber ich weiss nicht
wie man das in den Renderer anpassen könnte.

hier füge ich ein Bild hinzu, damit sie wissen, was ich meine.

Gruss
 

redo088

Mitglied
hallo,

ich kenne den renderer schon. Aber das Problem ist, ich habe es immer nicht hingekriegt, dass 2 Fächer unterschiedliche Farben kriegen ??

hier ist mein Code

class MyRenderer1 implements javax.swing.table.TableCellRenderer {


public Component getTableCellRendererComponent(javax.swing.JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
javax.swing.JTextField editor = new javax.swing.JTextField();

if (value != null) {



editor.setText(value.toString());

editor.setFont(new java.awt.Font("Tahoma", 1, 12));
editor.setBackground(new java.awt.Color(232, 189, 204));

}
editor.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

editor.setBorder(new javax.swing.border.BevelBorder(0));
return editor;
}
}
 

Morl99

Mitglied
Ergänzung: Du könntest den "kursen" eine Methode geben die eine Farbe zurückliefert (also
Code:
getBackground
o.ä.). Dann kannst du einfach aus dem Renderer heraus
Code:
setBackground(kurs.getBackground());
aufrufen.


Bitte java code immer in einer Java Umgebung schreiben indem du den Code in Java-Tags also [ JAVA ] und [ /JAVA ] einschließt. (ohne leerzeichen)

edit:
Du kannst es so machen wie eben beschrieben. Du fügst deiner Tabelle keine Strings hinzu sondern Objekte von einem Selbst erstellten Typ, zB
Java:
//per Hand geschriebener Code, tippfehler möglich
public class Kurs{
  String descr;
  Color bg;
  public Kurs(String descr, Color bg){
    this.descr = descr;
    this.bg = bg;
  }

  public Color getBackground(){
    return bg;
  }
}

Dann kannst du im Renderer einfach schreiben:
Java:
if (value instanceof Kurs){
  Kurs k = (Kurs) value;
  editor.setBackground(k.getBackground());
}

und wenn du möchtest
Java:
@Override
public String toString(){
  return descr;
}
 
Zuletzt bearbeitet:

fastjack

Top Contributor
Du mußt natürlich an irgendeiner Stelle (entweder im Renderer, oder aber whl. besser im Kurs, oder noch besser in einer Methode, die zum Kurs die Farbe gibt) festellen, welche Farbe gesetzt werden soll.
 

redo088

Mitglied
ja sorry mit der Umgebung wusste. Werde ich immer machen :).

Aber ich weiss nicht was du mit setBackground(...) meinst , und wie kann ich das machen?

ich habe versucht mit HashMap<Integer, Color> so dass die Vorherige Zeile in den Hash gesperichert
wird, aber es kommt ein NULLPOINTEREXCEPTION???
 

Michael...

Top Contributor
Mal ein paar Anmerkungen zu Deinem Renderer:
(- ich persönliche erbe lieber vom DefaultTableCellRenderer als TableCellRenderer zu implementieren)
- die Renderingkomponente (warum ein JTextField und nicht ein JLabel) nur einmal erzeugen, sonst macht man ja das ganze Renderingkonzept zu nichte
- man könnte vorher einfach definieren, welcher Kurs welche Farbe zugewiesen bekommt
und dann anhand dessen im Renderer den Hintergrund setzen
- oder wie von Morl vorgeschlagen eigene Kursobjekte ins TableModel stecken

Hier mal eine leicht überarbeitete Variante Deines Renderers
Java:
	class MyRenderer1 implements javax.swing.table.TableCellRenderer {
		
		private JLabel renderer;
		
		public MyRenderer1() {
			renderer = new JLabel();
			renderer.setOpaque(true);
			renderer.setFont(new java.awt.Font("Tahoma", 1, 12));
			renderer.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
			renderer.setBorder(new javax.swing.border.BevelBorder(0));
		}
		
		public Component getTableCellRendererComponent(javax.swing.JTable table, Object value, boolean isSelected,
				boolean hasFocus, int row, int column) {
			if (value != null) {
				renderer.setText(value.toString());
				//Hier den Hintergrund abhängig von value setzen
			}
			else {
				renderer.setText("");
				renderer.setBackground(Color.WHITE);
			}
			return renderer;
		}
	}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
J Kombinieren von Filter-Optionen für JTable AWT, Swing, JavaFX & SWT 4
B Swing Filter für JTable mit Netbeans Editor AWT, Swing, JavaFX & SWT 2
J Swing JTable-Event für einen Select?? AWT, Swing, JavaFX & SWT 3
D Filter für JTable AWT, Swing, JavaFX & SWT 5
A Swing Korrekte JTable.rowAt(point) für JTable in JScrollPane AWT, Swing, JavaFX & SWT 5
J Swing JTable cell-ausrichtung für zahlen mit alternierenden zeilenfarben AWT, Swing, JavaFX & SWT 2
K Swing setPreferredWidth für JTable funktioniert nur beim ersten Aufruf!? AWT, Swing, JavaFX & SWT 8
A Swing JTable benutzt keine Checkbox für Booleans AWT, Swing, JavaFX & SWT 9
J Swing Unteren Abstand für JTable in JScrollPane festlegen AWT, Swing, JavaFX & SWT 10
B LookAndFeel Cell Renderer für JTable bei Nimbus Look and Feel AWT, Swing, JavaFX & SWT 2
K Swing JTable Editierfunktion für einzelne Zellen ausschalten AWT, Swing, JavaFX & SWT 3
J Swing RowSorter für (negative) Integer / Floats - JTable AWT, Swing, JavaFX & SWT 5
F hintergrundbild für jtable als jscrollpane AWT, Swing, JavaFX & SWT 10
R Swing Editor für jTable AWT, Swing, JavaFX & SWT 6
S JTable: Eingabe nur für bestimmte Var.Typen zulassen AWT, Swing, JavaFX & SWT 13
B Swing minimale Spaltenbreite für JTable AWT, Swing, JavaFX & SWT 2
R JTable für sehr viele Daten sehr langsam AWT, Swing, JavaFX & SWT 20
G Exponentialdarstellung für JTable AWT, Swing, JavaFX & SWT 3
W MouseListener für jede Zelle einer JTable AWT, Swing, JavaFX & SWT 4
Iron Monkey DefaultTableRenderer für JTable AWT, Swing, JavaFX & SWT 12
V Welcher Listener für JTable? AWT, Swing, JavaFX & SWT 3
T TooliTipp für JTable AWT, Swing, JavaFX & SWT 3
J jTable, welcher listener für Änderung der Spaltenbreite AWT, Swing, JavaFX & SWT 2
ARadauer bestimmtes verhalten für jtable AWT, Swing, JavaFX & SWT 6
G Eventhandling für JTable AWT, Swing, JavaFX & SWT 3
M CellEditor für individuelle Zellen in JTable AWT, Swing, JavaFX & SWT 3
A Ideen für eine Filterfunktion von JTable-Einträgen AWT, Swing, JavaFX & SWT 5
D Header für den Row Header (JTable) AWT, Swing, JavaFX & SWT 2
M ToolTipText für JTable mit MouseListener ohne anklicken? AWT, Swing, JavaFX & SWT 7
S Array/Vector für JTable aufbereiten AWT, Swing, JavaFX & SWT 4
G RowEditor für JTable AWT, Swing, JavaFX & SWT 6
T Frage zu Listener für JTable AWT, Swing, JavaFX & SWT 19
D Vector Datenstruktur für JTable will nicht :-( AWT, Swing, JavaFX & SWT 6
EagleEye suche Tutorial(s) für JTable AWT, Swing, JavaFX & SWT 2
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
S HPRO und UPRO gemeinsame JTABLE gemeinsamer RENDERER ? AWT, Swing, JavaFX & SWT 1
F Swing JTable - MultiHeader inkl. Eingabemöglichkeit AWT, Swing, JavaFX & SWT 1
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
D Swing JTable Spaltenbreite AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G jTable - getSelectedRow() AWT, Swing, JavaFX & SWT 3
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JTABLE / wie oft wurde gewürfelt. AWT, Swing, JavaFX & SWT 1
F JTable vergrößern AWT, Swing, JavaFX & SWT 2
H JTable: Diverse NullPointer-Exceptions zur Laufzeit AWT, Swing, JavaFX & SWT 3
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
H JTable im JSplitPane darstellen AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
R Swing JTable und Spaltenausrichtung AWT, Swing, JavaFX & SWT 8
G JTable füllen AWT, Swing, JavaFX & SWT 1
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
J Datensatz in jTable ausgeben AWT, Swing, JavaFX & SWT 3
M Swing Automatischer Editorstart in JTable-Zelle AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
M JTable.setDefaultRenderer(...) greift nicht AWT, Swing, JavaFX & SWT 0
J JTable: Eingabe in Tabellenzelle korrigieren AWT, Swing, JavaFX & SWT 4
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
H Swing Jtable extra spalte AWT, Swing, JavaFX & SWT 6
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
N AWT jTable CellRenderer AWT, Swing, JavaFX & SWT 6
T Swing JTable valueChanged datensatz löschen AWT, Swing, JavaFX & SWT 1
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
S Jtable defaultRenderer wohin damit ? AWT, Swing, JavaFX & SWT 23
T Swing JTable / FocusListener AWT, Swing, JavaFX & SWT 0
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
J addRow bei JTable AWT, Swing, JavaFX & SWT 6
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
Meeresgott Swing JTable AWT, Swing, JavaFX & SWT 4
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
Thallius JTable dynamisch laden? AWT, Swing, JavaFX & SWT 2
B Swing JTable sortieren AWT, Swing, JavaFX & SWT 2
T Swing JTable auslesen und befüllen AWT, Swing, JavaFX & SWT 8
B JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
J JTable und Suchlogik AWT, Swing, JavaFX & SWT 4
Viktim Swing JTable mit Tab verlassen AWT, Swing, JavaFX & SWT 1
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen


Oben