2015-02-09 4 views
0

Я новичок в спящем режиме. Я разрабатываю приложение swing с использованием спящего режима. Я создал метод для заполнения JTable следующим образом.Использование JTable в спящем режиме

public static void FillTable(JTable table,String cls){ 
    SessionFactory sf = ConnectionDao.getSessionFactory(); 
    Session session = sf.openSession(); 
    Query query=session.createQuery("from "+cls);//here persistent class name is cls 
    ClassMetadata classMetadata = sf.getClassMetadata(cls); 
    List l = query.list(); 
    Object[] columnNames = classMetadata.getPropertyNames(); 
    DefaultTableModel model = new DefaultTableModel(new Object[0][0], 
      columnNames); 
    for (int i=0; i<l.size(); i++) { 
     CustomerBean cb = (CustomerBean) l.get(i); 
     Object[] o = new Object[3]; 
     o[0] = cb.getCustomerFName(); 
     o[1] = cb.getCustomerCity(); 
     o[2] = cb.getCustomerCity(); 
     model.addRow(o); 
    } 
    table.setModel(model); 
} 

Выше метод принимает имя JTable и Pojo класса в качестве параметра и заполнить JTable. Я не знаю, как заставить этот метод работать для всех классов pojo любого типа. свойств. Я не понимаю, как писать цикл for, чтобы он работал для всех классов. Потому что у каждого класса будет разное нет. свойств.

Любая помощь будет оценена по достоинству. Thanks

+1

Что происходит, когда вы запускаете этот код? Вы уверены, что это хорошая идея передать 'new Object [0] [0]' в качестве параметра вашего DefaultTableModel? – StephaneM

ответ

2

Я никогда не использовал Hibernate. Из вашего кода похоже, что Hibernate возвращает объект CustomerBean в результате запроса. Если это так, просто сохраните объект CustomerBean в TableModel. Затем вы можете использовать настраиваемую TableModel, которая использует отражение для доступа к свойствам класса CustomBean.

Отметьте Bean Table Model для TableModel, который поддерживает этот тип функциональности.

+0

Спасибо за ответ – user3787163