Hi und gleich noch etwas:
Ich verwende eine JTable, welche in eine JScrollBar eingebettet ist.
Ich möchte keinen horizontalen Scrollbalken verwenden, deshalb berechne ich zu jeder Zeit die Größe des Fensters in der die Tabelle dargestellt wird und berechne damit wieviele Zellen in eine Zeile passen.
Verändert man die Fenstergröße, so werden die ANzahl der Boxen je Zeile neu berechnet und die Tabelle neu gezeichnet.
Das klappt alles, nur eine Frage zu meiner Implementierung ob ich dies so richtig mache:
In meiner JTable gibt es folgende Methoden:
Und dann noch:
Mache ich das soweit korrekt? Ist es richtig nach dem Event -> WindowResized das TableModel neu zu setzen?
Andererseits wüsste ich nicht wie ich dem TableMode sonst darüber informiere, dass er jetzt eine andere ANzahl an Zeilen und Spalten besitzt
Ich verwende eine JTable, welche in eine JScrollBar eingebettet ist.
Ich möchte keinen horizontalen Scrollbalken verwenden, deshalb berechne ich zu jeder Zeit die Größe des Fensters in der die Tabelle dargestellt wird und berechne damit wieviele Zellen in eine Zeile passen.
Verändert man die Fenstergröße, so werden die ANzahl der Boxen je Zeile neu berechnet und die Tabelle neu gezeichnet.
Das klappt alles, nur eine Frage zu meiner Implementierung ob ich dies so richtig mache:
In meiner JTable gibt es folgende Methoden:
Code:
// Wird aufgerufen, wenn Fenstergröße geändert wird
public void updateViewAfterResize(){
// Holt sich die Fenstergröße
computeAndSetNumberOfBoxes(scrollPane.getViewport().getWidth());
// set data model of table, table registering at HeatMapTableModel
setModel(new UserDefinedTableModel(...));
// set internal table model global
setInternalTableModel(getModel());
updateView();
}
Und dann noch:
Code:
// wird bei Initialisierung aufgerufen -> und auch von updateViewAfterResize
public void updateView() {
// set empty header renderer for all other columns, skip first column
for (int i=0; i!=getColumnModel().getColumnCount(); ++i) {
TableColumn tableColumn = getColumnModel().getColumn(i);
tableColumn.setRenderer(new UserDefinedRenderer());
}
applyBoxSize();
}
Mache ich das soweit korrekt? Ist es richtig nach dem Event -> WindowResized das TableModel neu zu setzen?
Andererseits wüsste ich nicht wie ich dem TableMode sonst darüber informiere, dass er jetzt eine andere ANzahl an Zeilen und Spalten besitzt