Zeile in JTable durch rechte Maustaste manipulieren

g-a-s-t

Aktives Mitglied
Hallo,

ich habe eine JTable mit 4 Spalten (Boolean, Color, String, Icon). Editierbar sind davon nur die ersten beiden Spalten.
Nun möchte ich per rechter Maustaste (auf eine Zeile), dass sich diese selektierte Zeile in irgendeiner Form von den anderen Zeilen abhebt. Also entweder wird sie eingefärbt oder deaktiviert oder ähnliches.

Wie kann ich dies realisieren bzw. welche Möglichkeiten habe ich?

Ich bin für jeden Hinweis dankbar!
 

Michael...

Top Contributor
Nun möchte ich per rechter Maustaste (auf eine Zeile), dass sich diese selektierte Zeile in irgendeiner Form von den anderen Zeilen abhebt. Also entweder wird sie eingefärbt oder deaktiviert oder ähnliches.
Soll die Zeile nur temporär selektiert werden oder dauerhaft markiert werden? Bei Letzterem muss "man" sich den Zustand merken. Am besten in dem durch die Zeile repräsentierten Objekt und mittels Renderer entsprechend darstellen.

Die Darstellung von Tabelelnzellen erfolgt mit Hilfe von TableCellRenderern - falls noch nciht bekannt.
 

g-a-s-t

Aktives Mitglied
Die Zeile soll bis zum nächsten Rechtsklick "dauerhaft" markiert bleiben. (eine Mehrauswahl sollte natürlich auch möglich sein)

Vom TableCellRenderer habe ich schonmal was gehört, aber so genau kenn ich mich nicht damit aus.
Wie kann der Renderer auf bestimmte Mausivents reagieren?
 

Michael...

Top Contributor
Vom TableCellRenderer habe ich schonmal was gehört, aber so genau kenn ich mich nicht damit aus.
Wie kann der Renderer auf bestimmte Mausivents reagieren?
Schlechte Nachricht ;-) Ein Renderer kann nicht reagieren. Er wird von der JTable bzw. deren UI verwendet, um die Zellen zu zeichnen.

In dem Fall gibt es verschiede Möglichkeiten anzusetzen. Definitiv benötigt man einen MouseListener an der JTable mit dem der Rechtsklick ausgewertet wird. Dann muss man die Information auf welchen Zeilen ein Rechtsklick gemacht wurde speichern. Wie und wo, hängt auch vom Anwendungsfall ab.
Eine Möglichkeit wäre sich die Indizes der zu markierenden Zeilen in einer Liste zu speichern. Um sich nicht mit dem CellRenderer auseinandersetzen zu müssen könnte man die prepareRenderer(...) der JTable überschreiben. Wenn der Zeilenindex der zu rendernden Zelle in der Liste enthalten ist setzt man die Hintergrundfrabe des Renderers.

Java:
JTable table = new JTable() {
	public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
		Component comp =  super.prepareRenderer(renderer, row, column);

		//Wenn row in Liste dann comp.setBackground(Color.RED);

		return comp;
	}
};
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
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
R Zeile in JTable anhand von Wert einfärben 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
P JTable zeile einfärben AWT, Swing, JavaFX & SWT 1
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
M JavaFX TableView nur erste Zeile editable machen und gelb markieren AWT, Swing, JavaFX & SWT 0
F Zeile in mehreren Jtables bei Selektion markieren AWT, Swing, JavaFX & SWT 11
missy72 JavaFX TableRow / RowFactory Zeile einfärben AWT, Swing, JavaFX & SWT 9
T Zelle- und die Zeile-Farbenwechsel bei der Selektion in der Tabelle AWT, Swing, JavaFX & SWT 4
M TableView Zeile hinzufügen AWT, Swing, JavaFX & SWT 5
I JLabel neue Zeile AWT, Swing, JavaFX & SWT 4
B JavaFX TableView eine Zeile markieren AWT, Swing, JavaFX & SWT 5
C SWT Breadcrumb Zeile mit entsprechenden Hyperlinks erstellen AWT, Swing, JavaFX & SWT 0
Bluedaishi JTextArea gefundene Zeile nach Oben Scrollen AWT, Swing, JavaFX & SWT 13
B Zeile einer Tabelle selektieren AWT, Swing, JavaFX & SWT 1
T Swing Tabelle mit Button - Anzeigefehler nach Zeile entfernen AWT, Swing, JavaFX & SWT 1
D JLabel bei Aufruf neue Zeile AWT, Swing, JavaFX & SWT 5
C Button Text in JList neue Zeile AWT, Swing, JavaFX & SWT 6
F Swing String[] in JTextArea ausgeben. Jeder Eintrag in neue Zeile, aber ohne "\n"- Geht das? AWT, Swing, JavaFX & SWT 3
N AWT Markierte Zeile jList aus mySQL DB löschen AWT, Swing, JavaFX & SWT 2
M Text Area 1. Zeile oben AWT, Swing, JavaFX & SWT 4
I ausgewählte Zeile mit Hilfe der Tastatur löschen! AWT, Swing, JavaFX & SWT 3
T JtextPane Zeile aktualisieren AWT, Swing, JavaFX & SWT 3
M JTextArea Zeile hinzufügen AWT, Swing, JavaFX & SWT 4
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
F GroupableTableHeader zeigt nur eine Zeile AWT, Swing, JavaFX & SWT 4
N Swing FileReader Zeile lesen AWT, Swing, JavaFX & SWT 5
C SWT Wie greife ich auf den Inhalt einer bestimmten Zeile zu? (TableViewer) AWT, Swing, JavaFX & SWT 7
F SWT Tabelle Zeile auslesen AWT, Swing, JavaFX & SWT 3
K Zeile verbinden AWT, Swing, JavaFX & SWT 2
S Tabelle sortieren, mit Ausnahme der letzten Zeile AWT, Swing, JavaFX & SWT 9
P Aktuelle Zeile in JTextPane farblich hervorheben AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben