Toon posts:

[JAVA] jTable en zijn rommel

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ja ik zit dus al 2 dagen te stoeien met de jTable. En het wil maar niet lukken.


Eerst had ik een gewone JTable gemaakt en daar data uit een db ingestopt, dat ging ammel wel goed. Alleen nu wil ik hem updaten, ik heb gelezen dat dat dan moet met een AbstractTableModel extend.

Maar hier gaat het dus aardig de mist in.

ik heb deze class bij elkaar geschraapt uit een ander topic en beetje aangepast aan mijn eigen wensen.

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
package finalapplication;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;

final class TableOverzicht extends AbstractTableModel
{
    private final String[] columnNames = {"Voornaam","Achternaam"};
    public final static int TYPE_INDEX=0;
    public final static int NAME_INDEX=1;

    private Vector     vector=null;

    public TableOverzicht(Vector vector)
    {
        this.vector = vector;
    }

    public int getRowCount()
    {
        return vector.size();
    }

    public int getColumnCount()
    {
           return columnNames.length;
    }

    public String getColumnName(int column)
    {
        return columnNames[column];
    }

    public boolean isCellEditable(int nRow, int nCol)
    {
        return false;
    }

    public Object getValueAt(int nRow, int nCol)
    {

        return null;
    }
}



En deze geeft gewoon geen fouten terug (TROTS!)


daarna heb ik in mijn frame deze code (ook weer half bij elkaar geschraapt):

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
    Vector temp = new Vector();
    for (int i=0; i < 10; ++i) {
        Vector v = new Vector();
        v.add(Integer.toString(i));
        temp.add(v);
    }

    testTable = new TableOverzicht(temp);
    tabelOverzicht = new JTable(testTable);

   scrollPane = new JScrollPane(tabelOverzicht);

  .... (toevoegen aan het frame enz)


Maar, als ik hem run, dan blijven de velden leeg. Ik krijg dus in mijn table wel 10 rows te zien a 2 kol. maar dus zonder gegevens.

En ik snap er dus geen ene (reet) van hoe ik er gewoon tekst in kan krijgen.

En owja, ik ben grosse nuub in java dus be gentle... :Y)

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 06:52
Misschien de functie getValueAt invulling geven? ;)

Verwijderd

Topicstarter
mmmm Ja ik vroeg me al af waarom deze verplicht was :)

Ik dacht dat ie alleen gebruikt werd als die functie apart werd aangeroepen, maar JTable roept die dus aan... Dat scheelt denk ik :) ut werkt... Heb ik hier nou zon lang verhaal voor getypt :)

  • Robtimus
  • Registratie: November 2002
  • Nu online

Robtimus

me Robtimus no like you

Als je alleen maar rijen / kolommen hoeft toe te voegen / verwijderen kun je ook het DefaultTableModel gebruiken; die heeft setRowCount / setColumnCount waarmee je de table kan legen (setRowCount(0)), en verder meerdere addColumn / addRow methods. Verder nog veel meer leuke dingen zoals rijen inserten / moven / removen.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
code:
1
2
3
4
5
6
Vector temp = new Vector();
    for (int i=0; i < 10; ++i) {
        Vector v = new Vector();
        v.add(Integer.toString(i));
        temp.add(v);
    }


Is dit de bedoeling dat je dus de TEMP-vector volspuwt met 10 vectoren met elk 1 element ?

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • BestTested!
  • Registratie: Oktober 2003
  • Laatst online: 08:50
Feyd-Rautha schreef op 02 april 2004 @ 16:00:
code:
1
2
3
4
5
6
Vector temp = new Vector();
    for (int i=0; i < 10; ++i) {
        Vector v = new Vector();
        v.add(Integer.toString(i));
        temp.add(v);
    }


Is dit de bedoeling dat je dus de TEMP-vector volspuwt met 10 vectoren met elk 1 element ?
Volgens mij wel. Hij heeft geeft aan te willen werken met een JTable. Op deze manier maak je dus een 2-dimensionale Vector. De getallen 0 t/m 9 zullen wel slaan op de Column-Headers van die JTable. De Vectoren in de temp Vector zullen dan ieder een column representeren.
Pagina: 1