JTable zeile einfärben

Status
Nicht offen für weitere Antworten.

pope

Mitglied
Ich möchte in einer JTable eine bestimmte Zeile einfärben, das RenderModel macht dies auch, allerdings möchte ich das standard-render für rowselection nicht verlieren. Wie kann ich dieses Problem lösen?

Java:
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableCellRenderer;

public class PDatabase extends JPanel {
	private Model dmodel;
	private Settings settings;
	private DBController dbController;
	private DBContentModel fileTableModel;
	private DataImport dataImport;
	private JTable table;
	private JScrollPane tableSP;
	private JButton import_data = new JButton("importieren"); // ein neues
																// File in die
																// Datenbank
																// importieren
	private JButton delete_data = new JButton("löschen"); // bestehender
															// Eintrag aus
															// Datenbank löschen
	private JButton search_data = new JButton("suchen"); // Eintrag in
															// Datenbank suchen
	private JButton options = new JButton("optionen"); // Einstellungen für
														// Datenbank
	private JButton read_data = new JButton("einlesen");
	private Border border = new TitledBorder(BorderFactory.createEtchedBorder(
			Color.white, new Color(165, 163, 151)), " Datenbank ");
	private Border geoborder = new TitledBorder(BorderFactory
			.createEtchedBorder(Color.white, new Color(165, 163, 151)),
			" Geometriedaten ");

	private JCheckBox showDB = new JCheckBox("Datenbank anzeigen", true);

	File selectedFile;

	Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
	Dimension frameSize = getSize();

	public PDatabase(Model dmodel_parm) {
		this.dmodel = dmodel_parm;
		this.setLayout(new GridBagLayout());
		this.setBorder(border);

		settings = new Settings();
		dbController = new DBController();

		fileTableModel = new DBContentModel(dbController, settings.getVisibleColumns());
		table = new JTable(fileTableModel);
		table.setDefaultRenderer(Object.class, new MyTableCellRender(2));  
		table.setAutoCreateRowSorter(true);
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

		tableSP = new JScrollPane(table);

		GridBagConstraints c = new GridBagConstraints();

		// this.add(showDB, new GridBagConstraints(0, 0, 6, 1, 0, 0,
		// GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(
		// 2, 2, 2, 2), 0, 0));
		this.add(tableSP, new GridBagConstraints(0, 1, 6, 1, 1.0, 1.0,
				GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(
						2, 2, 2, 2), 0, 0));
		this.add(read_data, new GridBagConstraints(0, 2, 1, 1, 1, 0,
				GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(
						2, 2, 2, 2), 0, 0));
		this.add(import_data, new GridBagConstraints(2, 2, 1, 1, 1, 0,
				GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(
						2, 2, 2, 2), 0, 0));
		this.add(delete_data, new GridBagConstraints(3, 2, 1, 1, 1, 0,
				GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(
						2, 2, 2, 2), 0, 0));
		this.add(search_data, new GridBagConstraints(4, 2, 1, 1, 1, 0,
				GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(
						2, 2, 2, 2), 0, 0));
		this.add(options, new GridBagConstraints(5, 2, 1, 1, 1, 0,
				GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(
						2, 2, 2, 2), 0, 0));

		// Action Listeners

		read_data.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				if (table.getSelectedRow() != -1) {
					int row = table.getSelectedRow();
					File file = new File("data\\"
							+ fileTableModel.rowSourceFile(row) + ".z1p");
					DataRead read = new DataRead(dbController, file, dmodel);
					read.readSelectedFile();
//					table.setDefaultRenderer(Object.class, new MyTableCellRender(table.getSelectedRow()));  
//					table.setModel(fileTableModel);

					
				}
			}
		});

		delete_data.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {

				if (table.getSelectedRow() != -1) {
					DataDelete delEntry = new DataDelete(dbController,
							fileTableModel, settings, table);
					delEntry.deleteSelectedTableEntry();
				}

			}
		});

		options.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {

				TableOptions tabOptions = new TableOptions(dbController,
						fileTableModel, settings, table);
				tabOptions.setTableOptions();

			}
		});

		import_data.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {

				File selectedFile = dbController.selectFile();
				if (selectedFile != null) {

					dbController.openFile(selectedFile);
					String inductance = "6.23mH";

					dataImport = new DataImport(dbController, fileTableModel,
							settings, table, inductance);
					dataImport.showWin();
				}
			}
		});

		search_data.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {

				DataSearch search = new DataSearch(dbController, settings);
				search.searchTableData();

			}
		});
	}

}

class MyTableCellRender extends DefaultTableCellRenderer {
	int selectedRow;
	public MyTableCellRender(int selectedRow) {
		super();
		this.selectedRow = selectedRow;
		setOpaque(true);
	}

	public Component getTableCellRendererComponent(JTable table, Object value,
			boolean isSelected, boolean hasFocus, int row, int column) {
		if(selectedRow != -1){
			if (row == selectedRow) {
				Color backgroundColor = new Color(160, 220, 150);
	//			setForeground(Color.black);
				setBackground(backgroundColor);
			} else {
				setBackground(Color.white); 
			
			}
		}
		setText(value != null ? value.toString() : "");
		return this;
	}
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Zeile in JTable anhand von Wert einfärben AWT, Swing, JavaFX & SWT 2
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
T Swing JTable Zeile mit ausgelesenen Werten mit Hilfe von einem Button hinzufügen AWT, Swing, JavaFX & SWT 1
J Swing JTable Zeile nicht auswählbar machen AWT, Swing, JavaFX & SWT 0
J JTable Zeile anklicken und neues Frame öffnen AWT, Swing, JavaFX & SWT 4
S JTable nach aktualisierung - neue Zeile nicht "klickbar" AWT, Swing, JavaFX & SWT 0
D Swing Letzte Zeile einer JTable nicht über RowSorter sotieren AWT, Swing, JavaFX & SWT 2
B jTable ganze Zeile anhand eines Kriterium färben AWT, Swing, JavaFX & SWT 6
P Swing Alle Zeilen einer Spalte (jTable) zusammen zählen und in eine eigene Zeile das Ergebnis schreiben. AWT, Swing, JavaFX & SWT 7
Ollek Swing JTable - Zeile löschen mit AbstractTableModel AWT, Swing, JavaFX & SWT 20
S Swing Kopieren einer vollständigen Zeile einer JTable AWT, Swing, JavaFX & SWT 3
H Unterschiedliche JComboBox je JTable Zeile AWT, Swing, JavaFX & SWT 4
J Swing JTable: Komplette Zeile aber ohne Spalten markieren AWT, Swing, JavaFX & SWT 11
G Zeile in JTable durch rechte Maustaste manipulieren AWT, Swing, JavaFX & SWT 4
S Swing AWT-Exception bei JTable mit JComboBox beim Löschen der letzten Zeile AWT, Swing, JavaFX & SWT 3
Meldanor Swing JTable - Eine neue Zeile vor einer bestehenden Einfügen AWT, Swing, JavaFX & SWT 2
N JTable, Zeile bleibt immer selektiert.... AWT, Swing, JavaFX & SWT 3
F Swing JTable: Problem beim zeile löschen AWT, Swing, JavaFX & SWT 3
N Methode zum ermitteln der editierte Zeile/Zelle in jTable AWT, Swing, JavaFX & SWT 8
C Mit SelectionListener herausfinden welche zeile in Jtable angeklickt wurde AWT, Swing, JavaFX & SWT 5
E In JTable neue Zeile mit Tabulator einfügen AWT, Swing, JavaFX & SWT 5
R JTable Hintergrund der Zeile abhängig von Inhalt einer Zelle verändern AWT, Swing, JavaFX & SWT 3
R JTable Zeile löschen AWT, Swing, JavaFX & SWT 4
C JTable mit RowSorter und Drag & Drop: Zeile verschieben AWT, Swing, JavaFX & SWT 4
N Farbe einer einzelnen Zeile einer JTable ändern AWT, Swing, JavaFX & SWT 10
R JTable: Zellen einer Zeile zusammenfassen? AWT, Swing, JavaFX & SWT 3
D JTable um eine Zeile erweitern AWT, Swing, JavaFX & SWT 4
GilbertGrape JTable - immer leere Zeile AWT, Swing, JavaFX & SWT 6
A JTable zeile auswählen AWT, Swing, JavaFX & SWT 2
S in JTable eine Zeile färben AWT, Swing, JavaFX & SWT 5
T JTable ohne Titel in der ersten Zeile AWT, Swing, JavaFX & SWT 2
K leere Zeile zu JTable zufügen AWT, Swing, JavaFX & SWT 2
E JTable letzte Zeile in Fett schrift? AWT, Swing, JavaFX & SWT 3
O JTable + event wenn andere Zeile selektiert ist AWT, Swing, JavaFX & SWT 5
O JTable Zeile zuweisen und weiter mit dem Button AWT, Swing, JavaFX & SWT 2
M JTable & Problem, das nicht die komplette Zeile gefärbt AWT, Swing, JavaFX & SWT 6
G JTable erste zeile fixieren wie in excel? AWT, Swing, JavaFX & SWT 3
Z JTable automatisch zu einer Zeile scrollen AWT, Swing, JavaFX & SWT 4
G JTable Zeile zurückgeben AWT, Swing, JavaFX & SWT 4
D Herausfinden auf welche Zeile in einer JTable geklickt wurde AWT, Swing, JavaFX & SWT 2
S JTable: Zeile unter MouseCursor farblich hervorheben AWT, Swing, JavaFX & SWT 2
N Die Zeile einer JTable verändert beim klicken ihre Farbe? AWT, Swing, JavaFX & SWT 7
S Eine Zeile zu einer JTable hinzufügen wo Zelle selektiert is AWT, Swing, JavaFX & SWT 4
G JTable Zeile mit Farbe füllen AWT, Swing, JavaFX & SWT 2
G JTable komplette Zeile auf deaktiv setzen AWT, Swing, JavaFX & SWT 2
B JTable erste Zeile aktiv AWT, Swing, JavaFX & SWT 6
A Zeile in JTable einfügen/löschen- Tutorial gesucht AWT, Swing, JavaFX & SWT 9
H jtable makierte zeile löschen AWT, Swing, JavaFX & SWT 4
K JTable: letzte Zeile immer sichtbar AWT, Swing, JavaFX & SWT 2
G JTable-Zeile/Zelle markieren und mir Shortcut in Arbeitsspei AWT, Swing, JavaFX & SWT 3
A Zeile in einer JTable einfügen AWT, Swing, JavaFX & SWT 4
K JTable - ganze Zeile soll nicht markiert werden AWT, Swing, JavaFX & SWT 2
F JTable: Selektion einer kompletten Zeile AWT, Swing, JavaFX & SWT 5
G JTable selektion der Zeile bei Fokusieren mit der Maus AWT, Swing, JavaFX & SWT 5
C JTable -> Rechtsklick -> Zeile markieren AWT, Swing, JavaFX & SWT 5
N JTable Ganze Zeile markieren AWT, Swing, JavaFX & SWT 8
G Farbe einer JTable-Zeile von "Außen" ändern AWT, Swing, JavaFX & SWT 2
M JTable mit JCombobox eigene Auswahl pro Zeile ? AWT, Swing, JavaFX & SWT 3
L Falsche Zeile gelöscht nach Spalte Sortierung in JTable AWT, Swing, JavaFX & SWT 2
V Click auf JTable (Zeile) liefert den Eintrag? AWT, Swing, JavaFX & SWT 11
M Farbe der Umrandung einer ausgwählten Zeile ändern (JTable) AWT, Swing, JavaFX & SWT 3
C Aktion auführen nach Doppelklick auf Zeile in JTable AWT, Swing, JavaFX & SWT 10
S JTable + Zeile Selektieren AWT, Swing, JavaFX & SWT 5
V JTable: Bei Klick in Zelle -> Ganze Zeile markeiren AWT, Swing, JavaFX & SWT 7
R Gewählte Zeile aus JTable ausgeben lassen AWT, Swing, JavaFX & SWT 17
R JTable: nur eine Zeile auswählen AWT, Swing, JavaFX & SWT 2
J JTable Zeile mit rechtsklick AWT, Swing, JavaFX & SWT 6
T Zeile in JTable mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 8
G Zeile aus JTable in anderem JTable hinzufügen AWT, Swing, JavaFX & SWT 3
C JTable - Zeile fokussieren / selektieren AWT, Swing, JavaFX & SWT 7
J JTable: ganze Zeile selektieren AWT, Swing, JavaFX & SWT 5
S Neue Zeile in JTable adden AWT, Swing, JavaFX & SWT 3
G JTable! Beim anklicken einer Zeile soll sich Farbe ändern! 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
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
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
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
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

Ähnliche Java Themen

Neue Themen


Oben