JTable okazała się niewydajna dla wyświetlania danych w stylu Excela dla aplikacji pełnoekranowej. Czy istnieje jakiś sensowny zamiennik?
0
0
Niewydajna, czyli? Zamula przy pięciu wierszach? Ładujesz zawartość wszystkich komórek naraz? W jaki sposób używasz TableModel? Używasz leniwego ładowania zawartości komórek?
0
Piszę program konsumencki do bazy danych, chciałbym wyświetlić część jej zawartości w stylu Excela. Gdy użyłem 100 wierszy, każdy po 7 kolumn, podgląd aplikacji w NetBeans nie działał zbyt płynnie. Oto jak to zrobiłem:
import PodklasyInterfejsu.Menu;
import javax.swing.*;
import java.awt.*;
public class OknoGlowne extends JFrame
{
public OknoGlowne()
{
// ustawienie rozmiaru okna na 100%
JFrame OknoGlowne = new JFrame();
OknoGlowne.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
OknoGlowne.setTitle("Archiwum Stomatologiczne");
Toolkit zestaw = Toolkit.getDefaultToolkit();
Dimension rozmiarEkranu = zestaw.getScreenSize();
int wysEkranu = rozmiarEkranu.height;
int szerEkranu = rozmiarEkranu.width;
OknoGlowne.setSize(szerEkranu, wysEkranu - 60);
Container powZawartosci = getContentPane();
// Panel Górnego Menu:
Menu GorneMenu = new Menu();
OknoGlowne.setJMenuBar(GorneMenu);
// Wizualizacja bazy w tabeli:
JTable tabela = new JTable(komorki, nazwyKolumn);
tabela.setAutoCreateRowSorter(true);
OknoGlowne.add(new JScrollPane(tabela), BorderLayout.CENTER);
OknoGlowne.setVisible(true);
}
private Object[][] komorki = new Object [100][];
private String[] nazwyKolumn = {"Nazwisko", "Imię", "Pesel", "Płeć", "Data urodzenia", "Adres", "Kontakt"};
}
---edit----
JTable okazał się wystarczająco wydajny. Błąd był w zakresach tablic na końcu klasy:
private Object[][] komorki = new Object[100][7]; //!!
private String[] nazwyKolumn = { "Nazwisko", "Imię", "Pesel", "Płeć", "Data urodzenia", "Adres", "Kontakt" };