JTable für sehr viele Daten sehr langsam

Status
Nicht offen für weitere Antworten.

redbomber

Bekanntes Mitglied
Hi zusammen,

ich habe mal wieder ein Problem und leider sehr ratlos.

Beim Scrollen (durch klick auf Pfeil) wird meine Table sehr sehr langsam neu gezeichnet,
die scrollbar zuckelt wirklich nur millimeter für millimeter runter.
Und ich bin schon langer auf der Suche woran dies liegt.

Meine Table
Es geht um eine JTable. Diese JTable erbt von JPanel.
Jede Zelle wird bei mir farblich dargestell durch setBackground(Color.xx).

Ich besitze ein eigenes TableModel, welches von AbstractTableModel erbt.
Dieses Model besitzt die Methode getValueAt() --> Dies bedeutet also, dass nur aus den Zellen
die Daten geholt werden, welche benötigt werden. Dies sind nur alle DARGESTELLTEN Zellen.

Meine Daten:
mein Table Model kann entweder auf eine TreeMap<LinkedList<Objekte> > zugreifen,
oder auf eine ArrayList<LinkedList<Objekte> >
Diese Daten sind SEHR GROß, die ArrayList ist zb. 200000 Felder lang.

Zoom:
Ich kann die Einträge der TreeMap bzw. ArrayList zusammenfassen.
Also z.B.: Eintrag 1-10 in ArrayList wird in Zelle 1 der Tabelle dargestellt.
Eintrag 11-20 der ArrayList wird in Zelle 2 der Tabelle dargestellt.
usw. (entsprechend für TreeMap).

Auf ZoomStufe 1 befindet sich Eintrag in der TreeMap bzw. ArrayList in einer Zelle in der Tabelle.
Ebenso ist hier die LinkedList<Objekte> meist nur mit einem Objekt befüllt.

Wird also bei Zoom 10 die Tabelle gezeichnet, dann werden die LinkedList<Objekte> von 10 Zellen immer
in eine zusammengefasst. und durch die getValueAt() Methode zurückgegeben.

Bei großem Zoom würde ich also erwarten, dass die Darstellung der Tabelle langsamer wird, da zuerst die
LinkedList<Objekte> von der verschiedenen Zellen zusammengefasst werden.
Aber selbst bei Zoom 1 ist das ganze wahnsinnig langsam. Auf dem Bildschirm sin dann etwa 1000 Zellen
dargestellt.

Wo kann der Fehler liegen? Feuere ich zuviele Events, wodurch die Tabelle zu oft gezeichnet wird?
Liegt das Problem an meiner Datenstruktur, auf die ich über das TableModel zugreife?
Wie kann ich es testen wo genau sehr viel Zeit verloren geht?
 
G

Gast2

Gast
Moin,

das liegt an Windows (ich gehe jetzt davon aus das Du auch Windows verwendest) ... bei mir werden ca. 110000 Zeilen aufgebaut ... basierend auf einer Verzeichnisstruktur ... dabei werden die aber noch nach Datum sortiert ... das Sortieren verbraucht nur einen Brauchteil (!!) der Zeit als das Einfügen in den Tree

Du kannst die Zeit für das aufbauen abkürzen in dem Du nicht den ganzen Tree erstellst, sondern nur den sichtbaren und für die nächste Ebene Dummy-Einträge erstellst (damit das Plus zu sehen ist)

hand, mogel
 

Ebenius

Top Contributor
Ich kann mir keinen Anwendungsfall vorstellen, wo wirklich 200000 Einträge gleichzeitig angezeigt werden müssen
Das sind bei 100 Spalten doch grad mal 2000 Zeilen.

redbomber, kannst Du uns mal ein Beispiel zaubern, das ohne viel Zoom und Zeugs das gleiche Problem knackig zusammenfasst? Ohne Code kann man schlecht sagen, wo es teuer wird.

Ebenius
 

Wildcard

Top Contributor
ach ja ... Swing zeichnet selber ... aber dennnoch bleibt das Problem das er alle Einträge anzeigen will ... das dürfte auf Swing in die Knie zwingen ... daher auch der Vorschlag nur die Einträge einzuhängen die gerade benötigt werden
Die Klassen sind in der Regel recht gut optimiert und zeichnen nur das nötigste. Man müsste sich also, wie Ebenius schon sagt, das konkrete Beispiel ansehen.
 

redbomber

Bekanntes Mitglied
also ich kämpfe gerade damit bei mir den tptp profiler zu installieren ;P

--------------------------------------------------------------------------------------------------------------
Also die Grundlage meiner Daten sind Ergebnisse von vielen Berechnungen.
Es gibt wirklich sehr viele Daten. 200.000 sind dabei noch wenig.
Das ganze wird soll in einer Tabelle dargestellt werden, wobei man dann sozusagen über die Daten "scrollen" kann.
Da die JTable ja nur die Zellen darstellt, welche sichtbar sind, sollte die JTable hierfür eine sinnvolle und effiziente Darstellung sein.

Zusätzlich kann man auch noch rein/raus zoomen, d.h. in einer Zelle werden sozusagen 10 (20, 30 ...) Daten-Ergebnisse dargestellt. Und es gibt sogar eine Ansicht, wo man sich alle Daten in dem aktuellen Fenster darstellen lassen kann (dann sind z.b 8000 Daten-Ergbnisse je Zelle vorhanden).

Dargestellt werden die Zellen einfach mit einem Farbwert.
Dieser ergibt sich z.b. aus dem Durchschnitt der darin befindlichen Daten-Ergebnissen.


Also ich sehe ja ein, dass bei einer hohen Zoomstufe das ganze etwas länger dauert. Ebenso wenn ich die ZellGRÖßE verkleiner, so dass z.b. eine Zelle nur noch 4 Pixel gross ist und somit mehr Zellen auf den Bildschirm passen.

Aber wenn ich in Zoomstufe 1 das ganze betrachte (Zellgröße 15x15), dann scrollt die Scrollbar auch noch ewig langsam, obwohl dann in einer Zelle nur 1 Daten-Ergebnis steht.
Zu sehen sind dann bei mir im Vollbild etwa 50 Zeilen und 85 Spalten (Zelle 15x15 Pixel). Das macht dann 4250 Zellen die zu rendern sind.

@Ebenius:
Ich poste gleich mal meinen Renderer.
Dieser stellt die Zellen dar, welche die Daten-Werte enthält.
 

redbomber

Bekanntes Mitglied
Hier nur ein Objekt, welches später benötigt wird:
Code:
protected LinkedList<Object> objectList= null;
protected StrandInformation strand = null;
protected int cellnumber = -1;
	
public ValuesInformation(LinkedList<Object> objectList, StrandInformation strand, int cellnumber){
		if(objectList== null || probes.isEmpty()) this.objectList= null;
		else this.objectList= objectList;
		
		this.strand = strand;
		this.cellnumber = cellnumber;
	}
	
	public int getCellnumber(){ 

		return this.cellnumber;
	}
	
	public StrandInformation getStrand(){
		return this.strand;
	}
	
	public LinkedList<Object> getValues(){
		return this.objectList;
	}


Hier mein Cellrenderer.
es werden immer zwei zeilen mit Daten dargestellt und darauf folgt dann eine zeile, welche eine scala enthält.
Dann wieder zwei Zellen Daten...usw.


Code:
public Component getTableCellRendererComponent(JTable table, Object value,
			boolean isSelected, boolean hasFocus, int row, int col) {

		ValuesInformation valInf = (ValuesInformation )master.getTableModel().getValueAt(row, col);

		cellTypeSelection(row, col, valInf , isSelected);	
		return this;	
}




protected void cellTypeSelection(int row, int col, ValuesInformation valInf , boolean isSelected){

		this.cellnumber = valInf.getCellnumber();
		StrandInformation strand = valInf .getStrand();

		if (cellnumber > master.getTableModel().getNumberOfNecessaryCells()) {
			setBackgroundColor(Color.BLACK);
	        } 
               else {
	                 // if so setBackgroundColor for cell
	                 if(valInf.getValues() == null){
                        setBackgroundColor(Color.GRAY);
	                } else {
                            LinkedList<Object> selectedValues = valInf .getValues();


		            // get value of experiment
		            Double doubleValue = null;
		            int expNumber = master.getExpNumber();
		            if (master.getSplitView() == SplitView.first) {

			          doubleValue = master.Value(selectedValues.getFirst())[expNumber];

		          } else if (master.getSplitView() == SplitView.mean) {
			         // hier wird einfach der Mean berechnet von allen Werten die sich in der Zelle befinden
			         doubleValue = getMean();

		           } else if (master.getSplitView() == SplitView.max) {
                                 // hier wird nach dem größten Wert gesucht
			         doubleValue = getMax();
			
		           } else if (master.getSplitView() == SplitView.min) {
                                // hier wird der kleinste Wert gesucht
			         doubleValue = getMin();
		            }

		// set background color or set opaque
		if (doubleValue != null) {
			// hier wird anhand des Wertes ein Farbwert berechnet
			setBackgroundColorForCell(doubleValue);
		} else {
			setOpaque(false);
		}
         }  	
}


// hier wird noch die Scala gepainted
// und zwar wird zuerst ein Buffered Image für die sichtbaren Zeilen im Fenster gezeichnet und
// hier wird dann Zelle für Zelle der Bereich aus dem Buffered Image ausgeschnitten und in die Zelle der Tabelle
// eingefügt
public void paintComponent(Graphics g) {
		super.paintComponent(g);
               setBackground(Color.WHITE);

		if (placeholderCell){
			if(master.getKindOfView().equals(KindOfView.WHOLE)){
				if (this.scalaImage != null) {
                                        // bestimme Größe einer Zelle und schneide diesen Bereich aus dem
                                        // buffered image aus
					int boxSizeX = master.getBoxSizeX();
					int boxSizeY = master.getBoxSizeY();
					Graphics2D g2d = (Graphics2D) g;
					g2d.drawImage(this.scalaImage, 0, 0, boxSizeX, boxSizeY,
							(placeHolderColumn - 1) * boxSizeX, 0,
							((placeHolderColumn - 1) * boxSizeX + boxSizeX),
							boxSizeY, this);
				} else {
					setBackground(Color.BLACK);
				}
			}
		} 
	}
 
Zuletzt bearbeitet:

Wildcard

Top Contributor
Spontan sehe ich da folgendes:
Dein renderer fragt das TableModel ab. Warum? Die Daten stehen in data.
Deine Methode cellTypeSelection scheint sehr viel zu tun (von aussen kann man schlecht sehen wie teuer die einzelnen Operationen sind). Du darfst nicht vergessen, das wird für jede Zelle bei jedem Zeichnen aufgerufen.
 

Ebenius

Top Contributor
  • Was soll setBackground(Color) in einer paintComponent(...)-Methode?
  • Wieso benutzt Du nicht das value-Argument, anstatt das TableModel nochmal abzufragen?
  • Wie langsam ist Deine JTable, wenn Du das Zeichnen des Bildes in paintComponent(...) auskommentierst
  • Erbt Dein Renderer von DefaultTableCellRenderer? Wenn nicht: Hast Du Dir schon mal den Quelltext des DefaultTableCellRenderer angesehen? Such mal nach "performance"!
  • Um herauszufinden, was da lange dauert, teste den Renderer in zwei Stufen mit Schleifen ohne Tabelle (Code im Browser getippt, don't blame me :) ): [HIGHLIGHT="Java"]final TableCellRenderer render == YOUR_RENDERER;
    final JTable table = new JTable();
    long t0 = System.currentTimeMillis();
    for (int row = 0; row < ROWCOUNT; row++) {
    for (int col = 0; col < COLCOUNT; col ++) {
    renderer.getTableCellRendererComponent(table, model.getValueAt(row, col),
    false, false, row, col);
    }
    }
    System.out.println("Took " + (System.currentTimeMillis() - t0) + "ms");

    t0 = 0L;
    final BufferedImage img = new BufferedImage(80, 25, BufferedImage.TYPE_INT_ARGB);
    final Graphics g = img.getGraphics();
    for (int row = 0; row < ROWCOUNT; row++) {
    for (int col = 0; col < COLCOUNT; col ++) {
    final Component comp = renderer.getTableCellRendererComponent(table,
    model.getValueAt(row, col), false, false, row, col);
    comp.setBounds(0, 0, 80, 25);
    comp.validate();
    t0 -= System.currentTimeMillis();
    comp.paint(g);
    t0 += System.currentTimeMillis();
    }
    }
    System.out.println("Painting took " + t0 + "ms");[/HIGHLIGHT]
Ebenius
 

redbomber

Bekanntes Mitglied
# Was soll setBackground(Color) in einer paintComponent(...)-Methode?

-> Also das habe ich nun heraus genommen,
ich setze jetzt nur noch zu beginn in
Code:
public Component getTableCellRendererComponent(JTable table, Object value,
			boolean isSelected, boolean hasFocus, int row, int col)
einmal die hintergrundfarbe auf schwarz und wenn sich dann die Farbe ändert, wird die Farbe entsprechend gesetzt.
--------------------------------------------------------------------------------------------------
# Wieso benutzt Du nicht das value-Argument, anstatt das TableModel nochmal abzufragen?
#Dein renderer fragt das TableModel ab. Warum? Die Daten stehen in data.
-> gute Frage, habe ich jetzt geändert!

--------------------------------------------------------------------------------------------------
#Wie langsam ist Deine JTable, wenn Du das Zeichnen des Bildes in paintComponent(...) auskommentierst
Also ich habe mal alles aus paintComponent auskommentiert, also auch das Zeichnen der Scale. Zudem habe ich die Möglichkeit die Scala auszuschalten, dann wird diese also garnicht gezeichnet.
Die GEschwindigkeit bleibt jedoch gleich!

---------------------------------------------------------------------------------------------------
Also mein Renderer:
Renderer extends JPanel implements TableCellRenderer
Wo kann ich den Quelltext von dem DefaultTableCellRenderer betrachten?

---------------------------------------------------------------------------------------------------
 

Ebenius

Top Contributor
Wo kann ich den Quelltext von dem DefaultTableCellRenderer betrachten?
Im JDK-Installverzeichnis liegt ein src.zip. Da sind alle Quellen drin. Benutzt Du Eclipse? Dann CTRL+SHIFT+T, dann "DefaultTableCellRenderer" (oder einfach "DTCR" oder "DefTabCR") eingeben und ENTER drücken. Dann wird Dir entweder schon der Quelltext gezeigt, oder eine Seite wo ein Button mit "Attach Source" draufsteht; in letzterem Fall draufklicken, das oben erwähnte ZIP-File auswählen und glücklich werden.

Ebenius
 

Marco13

Top Contributor
Das sind bei 100 Spalten doch grad mal 2000 Zeilen.

"Gerade mal" ist gut. Versuch' mal, eine Tablelle mit 100 Spalte darzustellen. Wenn die in einer ScrollPane liegt, wird natürlich nur der relevante Bereich neugezeichnet, aber ... wer weiß, was in diesem Fall im painting code alles gemacht wird. (Hab's nicht alles nachvollzogen - der Satz oben erinnerte mich nur an die "Fisheye-Table", von der ich hier http://www.java-forum.org/codeschni...i-programmierung-meets-jogl-2.html#post478721 mal einen Screenshot gepostet hatte - die hat nur 375 Zeilen und 100 Spalten, und die hat schon 8000x6000 pixel gebraucht...
 

redbomber

Bekanntes Mitglied
gibt es eine Möglichkeit die src.zip separat herunter zu laden?
Habe keine src.zip in meinem Installationsverzeichnis.

Habe mir auch die neue SDK herunter geladen, da ist aber auch keine src.zip drinnen.
 

Ebenius

Top Contributor
Sofern Du von einem J2SDK (alias JDK) sprichst welches Du bei Sun heruntergeladen hast, halte ich das für vollkommen ausgeschlossen. Hast Du vielleicht nur das JRE installiert?

Ebenius
 

redbomber

Bekanntes Mitglied
Also ich habe jetzt die Ursache für mein Problem gefunden:
Und zwar habe ich beim scrollen immer meine Table upgedatet.
Mache ich dies nich mehr, dann scrollt die Tabelle recht schnell.

DAs einzigste Problem ist dass dann nur meine Scala nicht immer mit gezeichnet wird,
aber ich hoffe dieses Problem noch zu lösen.
 

Ebenius

Top Contributor
Also ich habe jetzt die Ursache für mein Problem gefunden:
Und zwar habe ich beim scrollen immer meine Table upgedatet.
Mache ich dies nich mehr, dann scrollt die Tabelle recht schnell.
Autsch.

DAs einzigste Problem ist dass dann nur meine Scala nicht immer mit gezeichnet wird,
aber ich hoffe dieses Problem noch zu lösen.
Da kann ich Dir grad nicht helfen. Am besten Du beschreibst das Problem nochmal in einem neuen Thema.

ja ich habe nur das JRE
Dann installier Dir zum Entwickeln das SDK! Da sind die Quellen dabei und auch die Entwicklungstools, wenn Du außerhalb IDE bauen möchtest.

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ä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
R JTable für Stundenplan färben AWT, Swing, JavaFX & SWT 7
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
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

Neue Themen


Oben