Toon posts:

[java] Resultaten en een JTable

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo mede tweakers,
Ik nu bezig een java een klein programmatje te maken.
En wil nu de resultaten uit mijn Query in een grid zetten (JTable), voorheen programmeerde ik meestal in Delphi (daar kwam ik er wel uit).

Maar hoe krijg ik met resultaten die in mijn ResultSet zitten. Makkelijk in die JTable?

En is er een functie in een query of resultset van Append() of new(), of moet ik persee altijd mij data inserten via een insert query??

alvast bedankt

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 21:15
Maak eerst van je tablennen een class representatie. Als je dan de query hebt uitgevoerd, maak je die objecten aan. Vervolgens stop zet je al die objecten in een TableModel (bijv via een array of list).
Voor verdere uitleg: zie api

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Je moet gebruik maken van een JTable in combinatie met een table model (dit is een interface). Daarmee kan je de data weergeven, op de Sun site staan wel verscheidene voorbeelden.

[funny]
Twee antwoorden in één klap!
[/funny]

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Probeer eerst eens ff wat andere (statische) data in een JTable te stoppen. JTable is redelijk gecompliceerd en moet je dus even goed bestuderen (zie voorbeelen op Sun)

Als dat goed lukt, en je een goed beeld hebt van JTable, dan kun je je resultset erin gaan duwen :)

[edit]Echter ik neem wel aan dat je neit met een bare resultset werkt? Een resultset representeert altijd een 'ding' (bijvoorbeeld een select uit de persoon tabel), dus kun je altijd wrappen in een class :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Als je een ResultSet direct in een JTable wilt laten zien omdat je bijvoorbeeld een database tooltje aan het schrijven bent kan je dit doen:
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
54
55
56
57
58
package org.pandoramix.db.gui;

import org.pandoramix.db.DatabaseTools;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;

public class QueryResultModel extends AbstractTableModel {

  private List<String> colNames;
  private String[][] data;
  private int [] maxChars;
  private int nrCols;
  private int nrRows;

  public QueryResultModel(ResultSet rs) throws SQLException {

    colNames = DatabaseTools.getColumnNames(rs);
    nrCols  = colNames.size();

    nrRows  = 0;
    List<String> dataList = new ArrayList<String>();
    while(rs.next()) {
    for(int i = 1; i < (nrCols + 1); i++) {
      dataList.add(rs.getString(i));
    }
     nrRows++;
    }
    
    data = new String[nrRows][nrCols];
    int index=0;
      for(int i=0;i<nrRows;i++) {
    for(int j=0;j<nrCols;j++) {
      data[i][j] = dataList.get(index);
      index++;
    }
    }
  }

  public int getRowCount() {
    return nrRows;
  }

  public int getColumnCount() {
    return nrCols;
  }

  public String getColumnName(int columnIndex) {
    return colNames.get(columnIndex);
  }

  public Object getValueAt(int rowIndex,int columnIndex) {
    return data[rowIndex][columnIndex];
  }
}

Als je echter een aantal items uit je applicatie domein wilt laten zien (zoals bijvoorbeeld personen, reserveringen, boeken, cd's enzovoorts) moet je daarvoor echt even netjes een klasse implementeren.

Op basis van deze klasse maak je net als hierboven een uitbreiding van een AbstractTableModel, waarmee je daarna een JTable aanmaakt.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Zie trouwens dit topic voor die betere aanpak: Alarmnummer post daar een mooi voorbeeld.

[topic=510729/1/25]

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
aha,
Het is allemaal heel mooi, maar ik snap het niet helemaal. Mijn java kennis is ook weer niet zo goed.
Kan iemand met dit misschien iets beter uitleggen (eventueel met een klein voorbeeldje).

Het is de bedoeling dat ik de regels in mijn tabel in een grid krijg en er dan doorheen kan scrollen.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Leren doe je niet in P&W, dat doe je door het lezen van artikelen en dergelijke :) . Als je er dan na het goed doornemen van wat standaard bronnen niet uitkomt kunnen wij je helpen.

Kijk eens hier:
Table in de Java Tutorial

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1