Hi Leute,
ich hab ein Problem mit meinen CellRenderern. Wenn ich keine eigenen installiere, sondern die defaultmässigen lasse, dann funzt alles wunderbar: Ich kann meinen 6-spaltigen Table maximieren und zB eine Spalte anpacken und wild damit rumfuchteln: Gefühlte 100 fps :toll:
So, sobald ich den 6 Spalten nun meinen eigenen CellRenderer verpasse, und den gleichen Test mache, ruckelt alles extrem stark, d.h. beim Rumspielen mit einer gepackten Column sinken die repaints auf gefühlte 10fps oder weniger. Was mich etwas schockt, denn ich habe inzwischen schon alles soweit minimiert wie es nur geht. Scheinbar ist schon die Klasse, die ich verwende falsch?! (JLabel)
Hier mein "Killer"-Renderer :lol:
Ich meine was kann ich denn hier bitteschön falsch machen, ich hab nur 1 Zeile Code
Es muss wohl am JLabel liegen? Wie zum Teufel schaut denn bitte der default-mässige Renderer aus? Ich bitte um Hilfe...
edit: Fals ich hier schon was falsch mache, ich adde in meinem Table-Constructor die Renderer wie folgt:
edit2: Mit nem JPAnel hab ichs auch grad versucht, das macht es auch nicht schneller.
ich hab ein Problem mit meinen CellRenderern. Wenn ich keine eigenen installiere, sondern die defaultmässigen lasse, dann funzt alles wunderbar: Ich kann meinen 6-spaltigen Table maximieren und zB eine Spalte anpacken und wild damit rumfuchteln: Gefühlte 100 fps :toll:
So, sobald ich den 6 Spalten nun meinen eigenen CellRenderer verpasse, und den gleichen Test mache, ruckelt alles extrem stark, d.h. beim Rumspielen mit einer gepackten Column sinken die repaints auf gefühlte 10fps oder weniger. Was mich etwas schockt, denn ich habe inzwischen schon alles soweit minimiert wie es nur geht. Scheinbar ist schon die Klasse, die ich verwende falsch?! (JLabel)
Hier mein "Killer"-Renderer :lol:
Java:
public class TableTextRenderer extends JLabel implements TableCellRenderer {
public TableTextRenderer() {
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
setText(value == null ? "" : value.toString());
return this;
}
}
Ich meine was kann ich denn hier bitteschön falsch machen, ich hab nur 1 Zeile Code
Es muss wohl am JLabel liegen? Wie zum Teufel schaut denn bitte der default-mässige Renderer aus? Ich bitte um Hilfe...
edit: Fals ich hier schon was falsch mache, ich adde in meinem Table-Constructor die Renderer wie folgt:
Java:
/* install cell renderer */
for (int i = 0; i < getColumnCount(); i++) {
TableCellRenderer r = new TableTextRenderer();
TableColumn col = getColumnModel().getColumn(i);
col.setCellRenderer(r);
}
edit2: Mit nem JPAnel hab ichs auch grad versucht, das macht es auch nicht schneller.
Zuletzt bearbeitet: