T
_tiGGa_
Gast
hallo,
ich hab ein problem
und zwar ^^
ich hab eine klasse, welche mir den gesamten jtree aufklappt bzw. zuklappt.
in meinem jtree habe ich unterschiedlich viele rows, mal 100 mal 1000, mall 5000
wenn ich 100 rows habe, geht es wunderbar schnell,
sind es aber 1000, oder noch mehr brauch er ewig.
dabei muss ich sagen, ich hab mir einen eigenen renderer geschrieben,
da ich verschiedene symbole für verschiedene zeilen haben möchte.
ich setze jedoch, bevor ich den jtree aufklappe den renderer auf null, und danach wieder auf meinen.
dies mache ich, da ich schon gemerkt hab, dass es schneller geht.
desweiteren sind die eigenschaften visible und enable bevor ich die methoden aufrufe auf false gesetzt.
kann man diesen code vielleicht noch verbessern?
bzw. kann man vielleicht auch mit dem modell arbeiten?
>1000 rows benötigt er > 3 min für das aufklappen,
zum zuklappen ca. 30sec.
codeschnipsel:
danke und hoffe ihr könnt mir weiterhelfen
greetz
_tiGGa_
ich hab ein problem
und zwar ^^
ich hab eine klasse, welche mir den gesamten jtree aufklappt bzw. zuklappt.
in meinem jtree habe ich unterschiedlich viele rows, mal 100 mal 1000, mall 5000
wenn ich 100 rows habe, geht es wunderbar schnell,
sind es aber 1000, oder noch mehr brauch er ewig.
dabei muss ich sagen, ich hab mir einen eigenen renderer geschrieben,
da ich verschiedene symbole für verschiedene zeilen haben möchte.
ich setze jedoch, bevor ich den jtree aufklappe den renderer auf null, und danach wieder auf meinen.
dies mache ich, da ich schon gemerkt hab, dass es schneller geht.
desweiteren sind die eigenschaften visible und enable bevor ich die methoden aufrufe auf false gesetzt.
kann man diesen code vielleicht noch verbessern?
bzw. kann man vielleicht auch mit dem modell arbeiten?
>1000 rows benötigt er > 3 min für das aufklappen,
zum zuklappen ca. 30sec.
codeschnipsel:
Code:
public void aufklappen(JTree tree, boolean expand) {
TreeCellRenderer temp_speicher = tree.getCellRenderer();
tree.setCellRenderer(null);
TreeNode root = (TreeNode)tree.getModel().getRoot();
if (expand) {
alle_aufklappen(tree);
} else {
alle_zuklappen(tree);
}
tree.setCellRenderer(temp_speicher);
}
public void alle_aufklappen(JTree tree) {
int row = 0;
while (row < tree.getRowCount()) {
tree.expandRow(row);
row++;
}
}
public void alle_zuklappen(JTree tree) {
int row = tree.getRowCount();
while (row > 0) {
tree.collapseRow(row);
row--;
}
}
danke und hoffe ihr könnt mir weiterhelfen
greetz
_tiGGa_