Java problema: precisa de um ordenado JList para representar uma tabela de banco de dados
Pergunta
Eu encontrei um amostra para uma classificadas JList , mas minha aplicação é alimentado por um banco de dados H2 incorporado por isso estou perguntando se não é a melhor maneira de implementar isso com isso em mente. Especialmente considerando a tabela em questão poderia se tornar extremamente grande, e duplicar todos os dados no modelo de lista de um JList parece derrotar meio ao ponto de ter um banco de dados para gerenciá-lo.
Existe uma boa maneira de fazer isso? Ou eu sou forçado a remendar algum hack desajeitado para permitir que o JList para "rolar" através de pedaços consultados dinamicamente de dados ou algo assim?
Solução
JList
do seu ListModel
é responsável por expor os dados de apoio como uma lista ordenada. métodos de ListModel
será chamado pelo JList
da UI (evento AWT) thread, portanto suas necessidades de desempenho para ser muito bom. É por isso que a maioria das implementações têm dados de apoio do ListModel
na memória. Eu suponho que você poderia implementar ListModel
com o seu banco de dados como os dados de apoio. Você provavelmente vai estender AbstractListModel
para obter o registro de ouvinte, e implementar getElementAt(int)
e getSize()
. getElementAt
seria então responsável por obter o objeto para um determinado índice. Tenha em mente que JList
chamará getElementAt
muitas vezes para índices diferentes, assim você pode encontrar-se cache os resultados. Dependendo da quantidade de dados que você está caching, você pode apenas recuperar todo o conjunto de dados do banco de dados.