Visualizar dados em uma JTable

Olá…

Estou tendo uns probleminhas com uma JTable e o Hibernate. Vejam o seguinte trecho de código:


public class Table {
	
	public Table(){
		
		try{
			
			Session session = HibernateUtility.getSession();
		     Transaction transaction = session.beginTransaction();
		
		     Iterator iterator = session.createQuery(" from Proprietario").list().iterator();
		     
		     while(iterator.hasNext()){
		    	 
		    	 
		     }
		     
		     DefaultTableModel model = new DefaultTableModel();
			 JTable proprietario = new JTable(model);
		     
		     transaction.commit();
		     session.close();
			
		}
		catch(Exception e){
			
		}
	     
   }

Como pode ser observado está incompleto o código porque não sei como fazer para que as colunas e linhas da tabela sejam mostradas. Deveria ser dentro do while ?. Alguém poderia me ajudar?

Até mais

Patty :wink:

Eu tenho um exemplinho aqui, beeeeeem simples, que talvez possa te ajudar, veja:

EventViewer.java

package events;

import java.awt.BorderLayout;
import java.util.List;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ScrollPaneConstants;

import org.hibernate.Session;

import util.HibernateUtil;

@SuppressWarnings("serial")
public class EventViewer extends JFrame {
	
	public EventViewer() {
		super("Event Viewer");
		this.setLayout(new BorderLayout());
		
		String[] columns = {"Title", "Date"};
		
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		
		List events = session.createCriteria(Event.class).list();
		
		MyTableModel model = new MyTableModel(events, columns);
		JTable table = new JTable(model);
		
		JScrollPane scroll = new JScrollPane(table);
		scroll.setHorizontalScrollBarPolicy(
				ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scroll.setVerticalScrollBarPolicy(
				ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
		
		this.getContentPane().add(scroll, BorderLayout.CENTER);
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(300, 300);
		this.setLocationRelativeTo(null);
		this.setVisible(true);
	}
	
	public static void main(String[] args) {
		new EventViewer();
	}
}

MyTableModel

package events;

import java.text.SimpleDateFormat;
import java.util.List;

import javax.swing.table.AbstractTableModel;

@SuppressWarnings("serial")
public class MyTableModel extends AbstractTableModel {
	
	private List linhas;
	private String[] colunas;
	private SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
	
	public MyTableModel(List linhas, String[] colunas) {
		this.linhas = linhas;
		this.colunas = colunas;
	}

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

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

	public Object getValueAt(int rowIndex, int columnIndex) {
		Event event = (Event) linhas.get(rowIndex);
		
		if (columnIndex == 0) return event.getTitle();
		else return df.format(event.getDate());
	}

}

A classe Event é aquela da documentação do Hibernate, que pode ser encontrada aqui: Chapter 1. Introduction to Hibernate.

Mais sobre JTable: Tutorial sobre JTable - Parte 2: Implementando Seu Modelo.

Olá…

Muito obrigada!!! :wink:

Até mais

Patty :smiley: