Как получить доступ к DefaultTableModel из другого класса - PullRequest
0 голосов
/ 06 марта 2020

Я намереваюсь иметь форму (FLlistes), которая показывает таблицу, заполненную данными, взятыми из базы данных с Hibernate. Проблема в том, что я не знаю, как получить доступ к таблице (или модели таблицы) из класса, который я использую для создания запросов.

Я создал jtable во фрейме JInternal следующим образом:

public class FLlistes extends JInternalFrame {

    private JTable table;
    private DefaultTableModel model;

    //some code

    String[] columns = {"Id","Date", "Place", "Total"};
    model = new DefaultTableModel(columns, 0);
    table = new JTable(model);
    JScrollPane scrollPane = new JScrollPane();
    scrollPane.setBounds(49, 176, 732, 361);
    getContentPane().add(scrollPane);
    scrollPane.setViewportView(model);

    //some code
}

У меня есть другой класс, который выполняет запросы для заполнения таблицы 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();

        for (LlistaCompra llista: llistes) {                
            String[] row = {Integer.toString(llista.getIdLlista()), llista.getData().toString(), llista.getLloc()};
            model.addRow(row);
        }
        entityManager.close();
    }
}

Проблема в том, что я не знаю, как получить доступ к модели в model.addRow(row);, чтобы заполнить стол

1 Ответ

1 голос
/ 06 марта 2020

Сделать FLlistes синглетным и предоставить метод получения для свойства DefaultTableModel. Затем вы можете получить доступ к getModel() с одного объекта.

public class FLlistes extends JInternalFrame {

private JTable table;
private DefaultTableModel model;

public DefaultTableModel  getModel(){
  return model;
}

//Singletone implemenation 
}
...