JTable не показывает никаких данных - PullRequest
0 голосов
/ 06 марта 2020

Я создал класс, который должен показывать JTable, заполненный данными, взятыми из базы данных с помощью hibernate:

 public class FLlistes extends JInternalFrame {

    private JTable table;
    private DefaultTableModel model;

    //some code for more components of the form

    String[] columns = {"Id","Data", "Lloc"};
        model = new DefaultTableModel(columns, 0) {    
            @Override
            public Class<?> getColumnClass(int columna) {
                if (columna == 2)
                    return LocalDate.class;
                return Object.class;
            }

            @Override
            public boolean isCellEditable(int row, int column) {
                return false;
            }
        };

    table = new JTable(model);
    JScrollPane scrollPane = new JScrollPane();
    scrollPane.setBounds(49, 176, 732, 361);
    getContentPane().add(scrollPane);
    scrollPane.setViewportView(table);

    //some code for more components of the form
}

Затем у меня есть класс, который выполняет запросы с помощью hibernate. Следующий метод должен собрать данные из таблицы и заполнить таблицу, которую я создал ранее.

public class AccionsBD {

public static void GetAllLlistes() {
    String jql = "select llc from LlistaCompra llc";

    EntityManager entityManager = JPAUtil.getEntityManagerFactory().createEntityManager();
    TypedQuery<LlistaCompra> q = entityManager.createQuery(jql,LlistaCompra.class);
    List<LlistaCompra> llistes = q.getResultList();

    FLlistes fl = new FLlistes();

    for (LlistaCompra llista: llistes) {    
        System.out.println(llista.getIdLlista());
        System.out.println(llista.getData());
        System.out.println(llista.getLloc());

        Object[] objFila = new Object[3];
        objFila[0] = llista.getIdLlista();
        objFila[1] = llista.getData();
        objFila[2] = llista.getLloc();
        fl.getModel().addRow(objFila);
    }
        entityManager.close();
    }
}

Цель System.out.println внутри l oop состоит только в том, чтобы проверить, что запрос работает. Запрос работает нормально, я попытался отладить, и конец l oop objFila содержит все правильные данные, но таблица в форме никогда не показывает ничего, кроме заголовка таблицы. Чего мне не хватает?

Кроме того, по какой-то причине иногда, когда я запускаю приложение, появляется форма, а иногда нет. Это происходит без изменения кода. Почему это происходит?

Редактировать: это мой получатель:

public DefaultTableModel getModel() {
        return model;
}
...