Wydajniejszy zamiennik JTable

0

JTable okazała się niewydajna dla wyświetlania danych w stylu Excela dla aplikacji pełnoekranowej. Czy istnieje jakiś sensowny zamiennik?

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" };

1 użytkowników online, w tym zalogowanych: 0, gości: 1