Swing gleiche Einträge in JTable farblich markieren

Curry

Aktives Mitglied
Moin Moin!

Ich würde gerne in einer JTable den fokussierten Eintrag auslesen und gleiche Einträge in dieser Tabelle farblich markieren. Dies habe ich mit einem TableCellRenderer versucht, was aber leider nur bedingt funktioniert.

Scheinbar werden nicht immer alle Zellen neue gezeichnet und komischerweise kann ich auch die erste Zeile nicht markieren.

Hat jemand wie ich es lösen kann?

Hier ein kleines funktionsfähiges Beispiel:
Java:
public class Main extends JFrame {

	public Main() {
		this.setLayout(new FlowLayout());


		String[][] rowData = {
			{"Tag 1", "1", "2", "3", "4", "5"},
			{"Tag 2", "2", "1", "5", "4", "4"},
			{"Tag 3", "1", "2", "3", "4", "3"},
			{"Tag 4", "1", "2", "3", "3", "5"},
			{"Tag 5", "1", "2", "2", "4", "5"},
			{"Tag 6", "1", "1", "3", "4", "5"}
		};

		String[] columnNames = {
			"Tag", "Aktion 1", "Aktion 2", "Aktion 3", "Aktion 4", "Aktion 5"
		};

		JTable table = new JTable(rowData, columnNames);

		TableColumnModel columnModel = table.getColumnModel();
		columnModel.getColumn(1).setCellRenderer(new TestCellRenderer());
		columnModel.getColumn(2).setCellRenderer(new TestCellRenderer());
		columnModel.getColumn(3).setCellRenderer(new TestCellRenderer());
		columnModel.getColumn(4).setCellRenderer(new TestCellRenderer());
		columnModel.getColumn(5).setCellRenderer(new TestCellRenderer());
		add(new JScrollPane(table));
		pack();
	}

	public static void main(String[] args) {
		Main test = new Main();
		test.setVisible(true);
	}

	public class TestCellRenderer extends JLabel implements TableCellRenderer {

		private Color colorEqual = new Color(255, 0, 0);
		private Color colorFocused = new Color(0, 255, 0);
		private Color colorDefault = new Color(255, 255, 255);

		public TestCellRenderer() {
			this.setOpaque(true);
			this.setHorizontalAlignment(JLabel.CENTER);
		}

		// ##################################
		// Implementierung: TableCellRenderer
		// ##################################
		@Override
		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

			String str = String.valueOf(value);
			this.setText(str);

			int selectedColumn = table.getSelectedColumn();
			int selectedRow = table.getSelectedRow();

			System.out.println(row + "\t\t" + column + "\t\t" + selectedRow + "\t\t" + selectedColumn);

			if (selectedRow > 0 && selectedColumn > 0) {

				String compare = String.valueOf(table.getValueAt(selectedRow, selectedColumn));

				if (hasFocus) {
					this.setBackground(colorFocused);
				} else if (str.equals(compare)) {
					this.setBackground(colorEqual);
				} else {
					this.setBackground(colorDefault);
				}

			} else {
				this.setBackground(colorDefault);
			}

			return this;

		}
	}
}
 

Michael...

Top Contributor
Wie Du bereits festgestellt hast ist der TableCellRenderer recht passiv und dazu nicht gerade intelligent ;-) Man kann mit ihm zwar über den Tellerrand einer Zelle hinausschauen, mehr aber nicht.

Der Weg das über den TableCellRenderer zu lösen ist m.M. der falsche Ansatz und führt wahrscheinlich nicht zum Erfolg.

Ich würde mir zu nächst einmal ein Objekt defnieren, welches die selben "Einträge" repräsentiert.
Mittels MouseListener und TableCellRenderer wird dann die "Selektion" und die Markierung gesteuert.

Hier mal ein auf die Schnelle hingeschriebener quick & dirty Ansatz, der das mal veranschaulichen soll.
Hat noch einiges an Optimierungspotential und ein paar unschöne Behelfslösungen:
Java:
import java.awt.Color;
import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;

public class TableMarkDemo extends JFrame {
	public TableMarkDemo() {
		MyObject[] objects = new MyObject[5];
		for (int i = 0; i < objects.length; i++)
			objects[i] = new MyObject("Objekt " + i);
		final DefaultTableModel model = new DefaultTableModel(new Object[][] { { "Tag 1", objects[0], objects[1], objects[2], objects[3] },
				{ "Tag 2", objects[1], objects[2], objects[0], objects[1] }, { "Tag 3", objects[4], objects[4], objects[3], objects[2] },
				{ "Tag 4", objects[1], objects[0], objects[1], objects[4] } },
				new String[] { "Tag", "Objekt", "Objekt", "Objekt", "Objekt" }) {
			
			public Class<?> getColumnClass(int columnIndex) {
				if (columnIndex > 0)
					return MyObject.class;
				return super.getColumnClass(columnIndex);
			}
		};
		
		final JTable table = new JTable(model);
		this.getContentPane().add(new JScrollPane(table));

		table.setDefaultRenderer(MyObject.class, new MyCellRenderer());

		table.addMouseListener(new MouseAdapter() {
			private MyObject lastSelection;

			public void mouseClicked(MouseEvent e) {
				int row = table.rowAtPoint(e.getPoint());
				int column = table.columnAtPoint(e.getPoint());
				if (lastSelection != null)
					lastSelection.setHighlighted(false);
				Object value = table.getValueAt(row, column);
				if (value instanceof MyObject) {
					lastSelection = (MyObject) value;
					lastSelection.setHighlighted(true);
				} else
					lastSelection = null;
				model.fireTableDataChanged();
			}
		});
	}

	class MyCellRenderer extends DefaultTableCellRenderer {
		private Color highlight = Color.ORANGE;

		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
			super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
			if (value instanceof MyObject) {
				MyObject mo = (MyObject) value;
				this.setText(mo.getValue());
				if (mo.isHighlighted())
					this.setBackground(highlight);
				else
					this.setBackground(table.getBackground());
			}
			return this;
		}
	}

	class MyObject {
		private String value;
		private boolean highlighted;

		public MyObject(String value) {
			this.value = value;
		}

		public String getValue() {
			return value;
		}

		public void setHighlighted(boolean b) {
			this.highlighted = b;
		}

		public boolean isHighlighted() {
			return highlighted;
		}
	}

	public static void main(String[] args) {
		JFrame frame = new TableMarkDemo();
		frame.setBounds(0, 0, 500, 300);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}
 

Curry

Aktives Mitglied
So, ich habe jetzt mal eine Art Quirl aus meinem ersten und deinem Beispiel gemacht. Das funktioniert schon sehr schön. Ich verwende jetzt einen
Code:
ListSelectionListener
mit seiner Methode
Code:
valueChanged(ListSelectionEvent e)
. In dieser lese ich die fokussierte Zelle aus und hinterlege dessen Wert im TableModel (mittels
Code:
setSelected(String selected)
), das daraufhin
Code:
fireTableDataChanged()
aufruft. Dadurch werden alle Zellen neu gezeichnet und alles wird richtig angezeigt.

Allerdings habe ich den ListSelectionListener noch nicht richtig unter Kontrolle (oder vielleicht ist der Fehler auch woanders). Auf jeden Fall bleibt die fokussierte Zelle nicht fokussiert, sondern verlieht den Fokus wieder. Dadurch wird sie wie die anderen auch rot und nicht grün (siehe
Code:
TestCellRenderer
) angezeigt.

Wenn ich nacheinander auf zwei Zellen klicke, dann produziert der
Code:
ListSelectionListener
mit seiner
Code:
valueChanged(ListSelectionEvent e)
Methode die folgende Konsolenausgabe:
Code:
Main.valueChanged() -> getValueIsAdjusting = true
Main.valueChanged(1) -> tableModel.setSelected()
Main.valueChanged() -> getValueIsAdjusting = true
Main.valueChanged() -> getValueIsAdjusting = true
Main.valueChanged() -> getValueIsAdjusting = true
Main.valueChanged() -> getValueIsAdjusting = true
Main.valueChanged(5) -> tableModel.setSelected()
Main.valueChanged() -> getValueIsAdjusting = true
Main.valueChanged() -> getValueIsAdjusting = true
Main.valueChanged() -> getValueIsAdjusting = true

Woran liegt das und wie kann ich das besser machen?


Java:
public class Main extends JFrame implements ListSelectionListener {

	JTable table = null;
	MyTableModel tableModel = null;

	public Main() {
		this.setLayout(new FlowLayout());
		
		String[][] rowData = {
			{"Tag 1", "1", "2", "3", "4", "5"},
			{"Tag 2", "2", "1", "5", "4", "4"},
			{"Tag 3", "1", "2", "3", "4", "3"},
			{"Tag 4", "1", "2", "3", "3", "5"},
			{"Tag 5", "1", "2", "2", "4", "5"},
			{"Tag 6", "1", "1", "3", "4", "5"}
		};

		String[] columnNames = {"Tag", "Aktion 1", "Aktion 2", "Aktion 3", "Aktion 4", "Aktion 5"};

		tableModel = new MyTableModel();
		tableModel.setDataVector(rowData, columnNames);
		table = new JTable(tableModel);
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		table.getSelectionModel().addListSelectionListener(this);
		tableModel.addTableModelListener(table);

		TableColumnModel columnModel = table.getColumnModel();
		columnModel.getColumn(1).setCellRenderer(new TestCellRenderer());
		columnModel.getColumn(2).setCellRenderer(new TestCellRenderer());
		columnModel.getColumn(3).setCellRenderer(new TestCellRenderer());
		columnModel.getColumn(4).setCellRenderer(new TestCellRenderer());
		columnModel.getColumn(5).setCellRenderer(new TestCellRenderer());
		add(new JScrollPane(table));
		pack();
	}

	public static void main(String[] args) {
		Main test = new Main();
		test.setVisible(true);
	}

	@Override
	public void valueChanged(ListSelectionEvent e) {
		String selected = "";
		int selectedRow = table.getSelectedRow();
		int selectedColumn = table.getSelectedColumn();

		if (e.getValueIsAdjusting()) {
			System.out.println("ExamVersionPanel.valueChanged(" + selected + ") -> getValueIsAdjusting = true");
			return;
		}

		if (selectedRow >= 0 && selectedColumn >= 0) {
			selected = (String) table.getValueAt(selectedRow, selectedColumn);
		}

		if (selected.equals("") == false) {
			System.out.println("ExamVersionPanel.valueChanged(" + selected + ") -> tableModel.setSelected()");
			tableModel.setSelected(selected);
		}
	}

	public class MyTableModel extends DefaultTableModel {

		String selected = "";

		public void setSelected(String selected) {
			this.selected = selected;
			fireTableDataChanged();
		}

		public String getSelected() {
			return selected;
		}
	}

	public class TestCellRenderer extends JLabel implements TableCellRenderer {

		private Color colorEqual = new Color(255, 0, 0);
		private Color colorFocused = new Color(0, 255, 0);
		private Color colorDefault = new Color(255, 255, 255);
		private MatteBorder borderFocused = BorderFactory.createMatteBorder(2, 2, 2, 2, new Color(0, 150, 0));
		

		public TestCellRenderer() {
			this.setOpaque(true);
			this.setHorizontalAlignment(JLabel.CENTER);
		}

		// ##################################
		// Implementierung: TableCellRenderer
		// ##################################
		@Override
		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

			String str = String.valueOf(value);
			this.setText(str);

			String compare = tableModel.getSelected();

			if (hasFocus) {
				this.setBackground(colorFocused);
				this.setBorder(borderFocused);
			} else if (str.equals(compare)) {
				this.setBackground(colorEqual);
				this.setBorder(null);
			} else {
				this.setBackground(colorDefault);
				this.setBorder(null);
			}

			return this;

		}
	}
}
 

Curry

Aktives Mitglied
Zusatz:

Wenn man die Zuweisung des ListSelectionListener auskommentiert, dann bleibt die Zelle nach dem anklicken fokussiert und es kann nach dem ersten fokussieren einer Zelle mit den Pfeiltasten in der Tabelle navigiert werden.

Java:
//		table.getSelectionModel().addListSelectionListener(this);

Es muss also irgendwie an dem ListSelectionListener liegen. Kann man das irgendwie unterbinden?
 

Michael...

Top Contributor
das mit dem
Code:
fireTableDataChanged()
bewirkt eine Deselektion der JTable und somit nochmaliges Auslösen des Listeners.

Hier mal eine Variante mit ListSelectionListener (wobei dieser nur auf Zeilenwechsel reagiert):
Java:
import java.awt.Color;
import java.awt.Component;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;

public class TableMarkDemo extends JFrame {
	public TableMarkDemo() {
		MyObject[] objects = new MyObject[5];
		for (int i = 0; i < objects.length; i++)
			objects[i] = new MyObject("Objekt " + i);
		final DefaultTableModel model = new DefaultTableModel(new Object[][] { { "Tag 1", objects[0], objects[1], objects[2], objects[3] },
				{ "Tag 2", objects[1], objects[2], objects[0], objects[1] }, { "Tag 3", objects[4], objects[4], objects[3], objects[2] },
				{ "Tag 4", objects[1], objects[0], objects[1], objects[4] } },
				new String[] { "Tag", "Objekt", "Objekt", "Objekt", "Objekt" }) {

			public Class<?> getColumnClass(int columnIndex) {
				if (columnIndex > 0)
					return MyObject.class;
				return super.getColumnClass(columnIndex);
			}
		};

		final JTable table = new JTable(model);
		this.getContentPane().add(new JScrollPane(table));
		table.setDefaultRenderer(MyObject.class, new MyCellRenderer());

		table.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
			private MyObject lastSelection;

			public void valueChanged(ListSelectionEvent e) {
				if (!e.getValueIsAdjusting()) {
					int row = table.getSelectedRow();
					int column = table.getSelectedColumn();

					System.out.println(row + " : " + column);

					if (lastSelection != null)
						lastSelection.setHighlighted(false);
					Object value = table.getValueAt(row, column);
					if (value instanceof MyObject) {
						lastSelection = (MyObject) value;
						lastSelection.setHighlighted(true);
					} else
						lastSelection = null;
					model.fireTableRowsUpdated(0, model.getRowCount() - 1);
				}
			}
		});
	}

	class MyCellRenderer extends DefaultTableCellRenderer {
		private Color highlight = Color.ORANGE;

		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
			super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
			if (value instanceof MyObject) {
				MyObject mo = (MyObject) value;
				this.setText(mo.getValue());
				if (hasFocus || isSelected)
					return this;
				if (mo.isHighlighted())
					this.setBackground(highlight);
				else
					this.setBackground(table.getBackground());
			}
			return this;
		}
	}

	class MyObject {
		private String value;
		private boolean highlighted;

		public MyObject(String value) {
			this.value = value;
		}

		public String getValue() {
			return value;
		}

		public void setHighlighted(boolean b) {
			this.highlighted = b;
		}

		public boolean isHighlighted() {
			return highlighted;
		}
	}

	public static void main(String[] args) {
		JFrame frame = new TableMarkDemo();
		frame.setBounds(0, 0, 500, 300);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}
 

Curry

Aktives Mitglied
Vielen Dank für deinen Hinweis zu
Code:
fireTableDataChanged()
!

Aber deine Lösung mit der MyObjekt-Klasse passt bei mir im Programm nicht so gut. Drum habe ich nach einer anderen Möglichkeit gesucht.

Ich habe es jetzt mit folgendem Vorgehen hinbekommen:
Damit der
Code:
ListSelectionListener
sowohl bei Zeilen- als auch bei Spaltenwechsel aktiv wird, habe ich ihn bei beiden Listenern registriert.
Java:
table.getSelectionModel().addListSelectionListener(this);
table.getColumnModel().getSelectionModel().addListSelectionListener(this);
Und um das Problem mit dem Deselektieren nach
Code:
fireTableDataChanged()
zu umgehen, rufe ich diese Methode gar nicht auf. Stattdessen verwende ich
Code:
table.repaint();
in
Code:
valueChanged()
.
Java:
@Override
public void valueChanged(ListSelectionEvent e) {

	if (!e.getValueIsAdjusting()) {
		String selected = "";
		int selectedRow = table.getSelectedRow();
		int selectedColumn = table.getSelectedColumn();

		if (selectedRow >= 0 && selectedColumn >= 0) {
			selected = (String) table.getValueAt(selectedRow, selectedColumn);
		}

		if (selected.equals("") == false) {
			tableModel.setSelected(selected);
			table.repaint();
		}
	}
}

Wie würdet ihr dieses Vorgehen bewerten? Sauber, oder habe ich etwas wichtiges nicht übersehen?
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JavaFX Wie kann ich alle Objekte außer eins deaktivieren (das Gleiche mit BoxBlur)? AWT, Swing, JavaFX & SWT 11
schoel27 Mehrere JButtons sollen das gleiche Event auslösen AWT, Swing, JavaFX & SWT 2
D JavaFX Alle Knöpfe auf die gleiche Größe AWT, Swing, JavaFX & SWT 14
KrokoDiehl JavaFX Gleiche Controller-Instanz für inludiertes FXML AWT, Swing, JavaFX & SWT 1
0 Swing Drag n' Drop Bug wenn Source und Target gleiche Komponente? AWT, Swing, JavaFX & SWT 4
R Swing alle Frames nutzen das gleiche Model AWT, Swing, JavaFX & SWT 2
spacegaier BoxLayout: Buttons auf gleiche Größe bringen AWT, Swing, JavaFX & SWT 4
G ein ContentProvider für 2 fast gleiche tabellen AWT, Swing, JavaFX & SWT 7
S gleiche Ergebnisse rauskommen AWT, Swing, JavaFX & SWT 3
M JButtons immer gleiche Größe? AWT, Swing, JavaFX & SWT 8
S gleiche elemente öffters benutzen AWT, Swing, JavaFX & SWT 10
B Zwei "gleiche" Objekte auf einem Frame platzieren AWT, Swing, JavaFX & SWT 2
C Inhalte in immer das gleiche Fenster ausgeben? AWT, Swing, JavaFX & SWT 3
P JTextarea (in JScrollPane) zeigt nur die beiden letzten Einträge an? AWT, Swing, JavaFX & SWT 0
karlmasutra JavaFX ListView zeigt Einträge nicht an AWT, Swing, JavaFX & SWT 11
F JComboBox und Einträge AWT, Swing, JavaFX & SWT 3
F JList zeigt keine Einträge mehr AWT, Swing, JavaFX & SWT 1
MrSnake ComboBox-Einträge werden unsichtbar AWT, Swing, JavaFX & SWT 0
C Swing JList zeigt keine neuen Einträge an AWT, Swing, JavaFX & SWT 1
I JavaFX Speichern der eingefügten Einträge beim Neustart des Programms AWT, Swing, JavaFX & SWT 2
D [Anfänger]ComboBox erstellt Einträge in einer anderen ComboBox AWT, Swing, JavaFX & SWT 3
J Einträge aus Table löschen ohne Exception AWT, Swing, JavaFX & SWT 6
M Swing jTable: aktuell angesehne Einträge um Infos erweitern AWT, Swing, JavaFX & SWT 7
S SWT: Drop-Down Menü-Einträge mit Tooltip hervorheben AWT, Swing, JavaFX & SWT 3
J Zusätzliche Einträge in der Taskliste AWT, Swing, JavaFX & SWT 4
M Eclipse-Platform Combo-Binding für User-Einträge AWT, Swing, JavaFX & SWT 9
M SWT Wie mehr als 5000 Einträge zur Auswahl geben? AWT, Swing, JavaFX & SWT 9
K SWT Mehrere Einträge ins Clipboard legen AWT, Swing, JavaFX & SWT 2
_dp Swing Tabelle: Ausklappbare Einträge AWT, Swing, JavaFX & SWT 2
B Swing JList Letzte Einträge oben ... AWT, Swing, JavaFX & SWT 6
M Doppelte Einträge in JTable AWT, Swing, JavaFX & SWT 4
A Swing JList Einträge entfernen AWT, Swing, JavaFX & SWT 6
T Swing JComboBox Einträge nach Tastendruck auswerten und aktualisieren AWT, Swing, JavaFX & SWT 8
E JCombobox- Einträge aktualisieren AWT, Swing, JavaFX & SWT 2
R Swing JTable Einträge übernehmen AWT, Swing, JavaFX & SWT 4
dzim JFace ListViewer-Einträge mit CellEditor? AWT, Swing, JavaFX & SWT 3
M brauche Hilfe um Einträge aus Jlist zu löschen AWT, Swing, JavaFX & SWT 4
P List-Einträge auslesen AWT, Swing, JavaFX & SWT 4
I JList - Einträge deaktivieren AWT, Swing, JavaFX & SWT 2
G Tabellen Items Einträge Aktualisieren AWT, Swing, JavaFX & SWT 2
B Probleme bei der dynamischen JCombobox-Einträge und Listener AWT, Swing, JavaFX & SWT 2
C JTable: Einträge werden dupliziert, um letzte Reihe zu fülle AWT, Swing, JavaFX & SWT 3
T JList: best. Einträge nicht selektierbar machen AWT, Swing, JavaFX & SWT 4
G Tabellen Einträge löschen - JTable AWT, Swing, JavaFX & SWT 6
G Doppelte Einträge aus JComboBox rausschmeisen AWT, Swing, JavaFX & SWT 2
E Einträge der JComboBox werden durch Grafik verdeckt AWT, Swing, JavaFX & SWT 11
R JMenu einträge werden überdeckt AWT, Swing, JavaFX & SWT 3
I Swing JTable zeichnet kein vertical Grid AWT, Swing, JavaFX & SWT 6
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
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

Ähnliche Java Themen

Neue Themen


Oben