Ik ben bezig met het maken van een JTable met een dynamisch aantal rijen, vanwege het feit dat het aantal rijen wel een maximum heeft heb ik wel besloten tot een implementatie met een 2-d array
In code de belangrijkste delen
Het probleem dat ik heb is dat indien ik het scherm wil vernieuwen met de functie setStatus() stel ik de variabele rows op 2, de 1e rij bevat de juiste informatie, een 2e rij wordt echter niet gemaakt, de functie getRowCount wordt echter wel een aantal malen aangesproken.
Hoe kan ik er dus voor zorgen dat het aantal rijen dynamisch kan wijzigen?
In code de belangrijkste delen
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| public class GUI extends Applet implements ActionListener
{
private JTable tableStatus;
private MyTableModel tableModelStatus;
public void init()
{
tableStatus = new JTable();
tableModelStatus = new MyTableModel();
tableStatus.setModel(tableModelStatus);
add(tableStatus);
}
public void setStatus()
{
Object[][] data = {{"1","2","3"},{"2","3","4"}};
tableModelStatus.setData(data);
tableStatus.setModel(tableModelStatus);
tableStatus.repaint();
}
}
class MyTableModel extends AbstractTableModel {
final String[] columnNames = {"Name","Type","Value"};
Object[][] data = {{"-","-","-"},{"-","-","-"},{"-","-","-"}};
int rows = 1;
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return rows;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public void setData(Object[][] _data) {
rows = _data.length;
data = _data;
}
} |
Het probleem dat ik heb is dat indien ik het scherm wil vernieuwen met de functie setStatus() stel ik de variabele rows op 2, de 1e rij bevat de juiste informatie, een 2e rij wordt echter niet gemaakt, de functie getRowCount wordt echter wel een aantal malen aangesproken.
Hoe kan ik er dus voor zorgen dat het aantal rijen dynamisch kan wijzigen?