Hallo zusammen,
ich verzweifle seit Tagen an einem Problem...
und zwar wird bei in meinem TableModel die Methoden
und
permanent 1000-de male / sec aufgerufen.
So ist mein Fenster aufgebaut.
JFrame - JTabbedPane - JPanel - JTable
Ich habe in Meinem Programm viele andere Tabellen die nicht auf JTabbedPane liegen und diese funktionieren problemlos.
Auszug:
Ich benutze TableLayout.
schon beim Erstellen von Gui (keine Daten vorhanden) wird die methode getRowCount 6 mal aufgerufen.
Füge ich neue Daten in die Tabelle so werden beide Methoden nacheinander nonstop aufgerufen, dabei wird nur der sichtbarer Teil der Tabelle "refresht", Aufrufe enden sobald ich das Fenster minimiere und starten sofort wenn das Fenster wieder sichtbar ist. Alle Listener machen gar nicht, leere Methoden...
Ich hoffe jemand hat eine Idee, das Problem hat mich schon um 3 Tage verzögert... Im Internet gibt es Paar Bughinweise in der Richtung...
Danke schon mal :bahnhof:
ich verzweifle seit Tagen an einem Problem...
und zwar wird bei in meinem TableModel die Methoden
Code:
getValueAt
Code:
getRowCount
So ist mein Fenster aufgebaut.
JFrame - JTabbedPane - JPanel - JTable
Ich habe in Meinem Programm viele andere Tabellen die nicht auf JTabbedPane liegen und diese funktionieren problemlos.
Auszug:
Java:
private TableModel createModel(){
DefaultTableModel model = new DefaultTableModel(new String[]{"Value_1", "Value_2"}, 0){
private static final long serialVersionUID = 1L;
@Override
public int getRowCount() {
System.out.println("getRowCount()");
return super.getRowCount();
}
@Override
public Object getValueAt(int row, int column) {
System.out.println("getValueAt()");
SysData value =(SysData) this.dataVector.get(row);
if(column == 0){
return value.value1();
}
return value.value2();
}
};
return model;
}
public JTable createTable() {
JTable table = new JTable(createModel());
table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
table.setBackground(LookConstants.GREEN);
table.setShowHorizontalLines(false);
table.setShowVerticalLines(false);
table.setRowSelectionAllowed(true);
table.setAutoCreateRowSorter(false);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setRowSorter(null);
table.addKeyListener(_listener);
table.addMouseListener(_listener);
return table;
}
@Override
protected void addTable() {
this._table = createTable();
TableColumn column;
// cvar value
int[] sizes = { 250, 500 };
for (int i = 0; i < sizes.length; i++) {
column = _table.getColumnModel().getColumn(i);
column.setPreferredWidth(sizes[i]);
column.setResizable(false);
}
_tablePanel.add(new JScrollPane(_table), "1,1");
add(_tablePanel, "0,1,1,1");
//wenn add(_table, "0,1,1,1"); dann startet der permanente Aufruf sofort, sonst erst wenn man Daten hinzufuegt. ...
}
Ich benutze TableLayout.
schon beim Erstellen von Gui (keine Daten vorhanden) wird die methode getRowCount 6 mal aufgerufen.
Füge ich neue Daten in die Tabelle so werden beide Methoden nacheinander nonstop aufgerufen, dabei wird nur der sichtbarer Teil der Tabelle "refresht", Aufrufe enden sobald ich das Fenster minimiere und starten sofort wenn das Fenster wieder sichtbar ist. Alle Listener machen gar nicht, leere Methoden...
Ich hoffe jemand hat eine Idee, das Problem hat mich schon um 3 Tage verzögert... Im Internet gibt es Paar Bughinweise in der Richtung...
Danke schon mal :bahnhof: