Ik heb een Swing JTable. Dat leverd wat problemen op. Ik wil hem vernieuwen maar dat krijg ik niet voor elkaar.
Deze word op de volgende manier gevult en op een panel gezet: (sorry voor de layout kreeg ik niet helemaal lekker)
Dit is de methode die de data ophaalt:
Dit is die methode die de kolomnamen opvraagt:
In de query zit 1 variabele 'datum'. Als ik het programma run is dit gewoon een default waarde.
Nu kan ik in het programma ook een andere datum opgeven. Alleen dan...
Hoe krijg ik nou voor elkaar dat hij die hele tabel veranderd dmv 1 druk op de knop. (het is een soort zoek functie op datum)
Zeg maar net als dat je bij een label een nieuwe tekst erin zet door setText. Helaas kan ik geen setTabel oid vinden
Hoe krijg ik toch deze functionaliteit in mijn programma met ongeveer deze code.
Ik heb redelijk wat gezocht de enige oplossing die ik kon vinden was, om kollommen te verwijderen en weer opnieuw toe te voegen, dit is niet echt wat ik zoek.
Deze word op de volgende manier gevult en op een panel gezet: (sorry voor de layout kreeg ik niet helemaal lekker)
code:
1
2
3
| JTable table1 = new JTable(databaseData.getActieviteit(), databaseData.getActiviteitHeaders()); JScrollPane scrollPanel1 = new JScrollPane(table1); panel1.add(scrollPanel1, BorderLayout.CENTER); |
Dit is de methode die de data ophaalt:
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
| public Object[][] getActieviteitDatum(String datum)
{
int recordCounter = 0;
try
{
ResultSet result = stmt.executeQuery("SELECT voornaam, achternaam,
datumtijd, actie FROM parkeerder, actie WHERE Parkeerder.persoonsID =
actie.PersoonsID AND datumtijd like '%" + datum + "%' ORDER BY datumtijd");
result.last();
int aantalRecords = result.getRow();
int columnCount = result.getMetaData().getColumnCount();
data = new Object[aantalRecords][columnCount];
result.beforeFirst();
while(result.next())
{
for(int i=1; i <= columnCount; i++)
{
data[recordCounter][i-1] = result.getString(i);
}
recordCounter++;
}
}
catch(SQLException ex) {System.err.println("SQLException: " + ex.getMessage());};
return data;
} |
Dit is die methode die de kolomnamen opvraagt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| public String[] getActiviteitDatumHeaders()
{
int recordCounter = 0;
try
{
ResultSet result = stmt.executeQuery("SELECT voornaam, achternaam,
datumtijd, actie FROM parkeerder, actie WHERE Parkeerder.persoonsID = actie.PersoonsID");
ResultSetMetaData metaData = result.getMetaData();
int columnCount = metaData.getColumnCount();
header = new String[columnCount];
for(int i=0; i < columnCount; i++)
{
header[i] = metaData.getColumnName(i + 1);
}
}
catch(SQLException ex) {System.err.println("SQLException: " + ex.getMessage());};
return header;
} |
In de query zit 1 variabele 'datum'. Als ik het programma run is dit gewoon een default waarde.
Nu kan ik in het programma ook een andere datum opgeven. Alleen dan...
Hoe krijg ik nou voor elkaar dat hij die hele tabel veranderd dmv 1 druk op de knop. (het is een soort zoek functie op datum)
Zeg maar net als dat je bij een label een nieuwe tekst erin zet door setText. Helaas kan ik geen setTabel oid vinden
Hoe krijg ik toch deze functionaliteit in mijn programma met ongeveer deze code.
Ik heb redelijk wat gezocht de enige oplossing die ik kon vinden was, om kollommen te verwijderen en weer opnieuw toe te voegen, dit is niet echt wat ik zoek.
the funniest thing about this particular signature is that by the time you realise it doesn't say anything it's too late to stop reading it