Skocz do zawartości

[JAVA] Wyświetlanie danych w JTable


Polecane posty

Witam, od paru dni męczę się z wyświetleniem danych w komponencie JTable

Chciałbym pobierać z bazy danych dane - i wyświetlać je w JTable

 

Udało mi się jak narazie pobrać pojedynczy rekord i wstawić go do JTable, ale za Chiny ludowe nie wiem jak mam pobrać macierz danych i wstawić ją do JTable. Może poniższy kod ułatwi pomoc:

 



package testowe;



import java.sql.*;

import javax.swing.*;

import java.awt.*;

import javax.swing.table.*;

import java.util.Vector;



public class SimpleTable extends JFrame

{

public SimpleTable()

{

super("Simple JTable Test");

setSize(350, 200);

setLocation(250,300);

int ColCount;

int i;

int h;

//int row, con;



try

{

DriverManager.registerDriver(new com.sybase.jdbc3.jdbc.SybDriver());

String url = "jdbc:sybase:Tds:localhost:2638/asademo";

Connection conDB = DriverManager.getConnection(url, "dba", "sql");



ResultSet rset1 = null;

Statement stmt1 = null;

//Statement stmt2 = null;

String ID_klienta = null;

String Imie = null;



String kolumny[] = { "ID_klienta", "Imie" };

String dane[][] = {{}};



stmt1 = conDB.createStatement();

rset1 = stmt1.executeQuery("select * from Klienci");



//Vector rekordy = new Vector();

//rekordy.toArray(dane);



ResultSetMetaData meta = rset1.getMetaData();

ColCount=meta.getColumnCount();





/* Vector<String> row = new Vector<String>();

row.addElement( rset1.getString("ID_klienta"));

row.addElement( rset1.getString("Imie"));

//row.toArray(dane);

row.capacity();

*/

while (rset1.next())

{



String [] record= new String[ColCount];



for (i=0; i<ColCount; i++)

{

record[i]=rset1.getString(i+1);

System.out.println("dane osoo: " + Imie); // <-- wyswietla dane w konsoli

}



ID_klienta = rset1.getString("ID_klienta");

Imie = rset1.getString( "Imie");

}



JTable jt;

jt = new JTable (new String[][] {{ID_klienta,Imie}},kolumny); // <- chyba tu jest problem

//(new String[][] {{ID_klienta,Imie}},kolumny);



JScrollPane jsp = new JScrollPane(jt);

getContentPane().add(jsp, BorderLayout.CENTER);

}

catch (Exception e)

{

System.out.println("failure to connect " + e);

return; //(exit(1));

}

}





public static void main(String args[]) {

SimpleTable st = new SimpleTable();

st.setVisible(true);

System.gc();

}

}

ale nie wiem, jak do tej tablicy przekierować wszystkie dane z bazy danych

 

 

Caly mój problem polega na tym, iż nie wiem jak pobrane dane z tej bazy, zapisać do macierzy, a następnie przekierować do JTable

 

Pracuję w środowisku Eclipse, korzystam z ASA 11

Link do komentarza
Udostępnij na innych stronach

  • 9 months later...

Cześć,

w Javie dodaje się dane do tabelki za pomocą tzw Modelu tabelki:

TableModel model = ((DefaultTableModel)table.getModel();

 

Gdy masz pobrany model tabelki - w petli dodajesz sobie do tabelki kolejne wiersze poleceniem:

model.addRow();

 

metoda addRow() przyjmuje wektor wartości, jakie chcesz miec w kolejnych komórkach dodawanego wiersza.

Jeśli ta wiedza nie wystarczy - zobacz tutaj http://download.oracle.com/javase/1.4.2/do...TableModel.html

Pozdrawiam ;)

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...