Frage

Ich möchte eine Visualisierung der Datenbank erstellen. Es ist eine vollständige Anwendung in voller Desktop, und sie sieht Excel ähnlich aus. Wenn ich in meine JTable -Datenbankvisualisierung 100 Zeilen mit jeweils 6 Spalten einfügt, zerkleinert sich die Anwendung. Gibt es eine bessere Klasse für eine solche Aufgabe? Oder eine andere intelligentere Art?

So mach ich es:

import PodklasyInterfejsu.Menu;
import javax.swing.*;
import java.awt.*;

public class OknoGlowne extends JFrame 
{    
    public Okno() 
    {
        // ustawienie rozmiaru okna na 100% 
        JFrame Okno = new JFrame(); 

        Okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Okno.setTitle("Archiwum Stomatologiczne");


        Toolkit zestaw = Toolkit.getDefaultToolkit();
        Dimension rozmiarEkranu = zestaw.getScreenSize();
        int wysEkranu = rozmiarEkranu.height;
        int szerEkranu = rozmiarEkranu.width;
        Okno.setSize(szerEkranu, wysEkranu - 60);                              


        Container powZawartosci = getContentPane();

        // Panel Górnego Menu:
        Menu GorneMenu = new Menu();
        Okno.setJMenuBar(GorneMenu);

        // Wizualizacja bazy w tabeli:

        JTable tabela = new JTable(komorki, nazwyKolumn);
        tabela.setAutoCreateRowSorter(true);
        Okno.add(new JScrollPane(tabela), BorderLayout.CENTER);

        Okno.setVisible(true);

    }
        private Object[][] komorki = new Object [10][];
        private String[] nazwyKolumn = {"Nazwisko", "Imię", "Pesel", "Płeć", "Data urodzenia", "Adres", "Kontakt"};
}
War es hilfreich?

Lösung

Ein Problem im obigen Code ist, dass Ihr Daten 2-D-Objekt [10] [] Array, Komorki, nicht mit Ihrem Spaltenzeichenfolge [] Array, Nazwykolumn, übereinstimmt. Sie haben 7 Spalten und benötigen 7 als erstes Array -Index für Ihr Objektarray. Erwägen Sie dies zu ändern:

private Object[][] komorki = new Object[10][];
private String[] nazwyKolumn = { "Nazwisko", "Imię", "Pesel", "Płeć",
     "Data urodzenia", "Adres", "Kontakt" };

dazu:

// !! private Object[][] komorki = new Object[10][];
private Object[][] komorki = new Object[10][7]; //!!
private String[] nazwyKolumn = { "Nazwisko", "Imię", "Pesel", "Płeć",
     "Data urodzenia", "Adres", "Kontakt" };

für Starter.

Andere Tipps

Wie von anderen erwähnt: Haben Sie versucht, Profilerstellung zu profilieren? Ich persönlich habe gute Erfahrungen mit JProfiler.

Obwohl wir noch nicht wissen, ob die JTable ist das tatsächliche Problem, ich hatte Leistungsprobleme mit JXTables (Hinweis: Die Swingx -Version von JTable) in Kombination mit groß TableModels, wo die Tabelle über alle Elemente iteriert würde, um die Säulengröße vor dem Malen zu bestimmen.

Dies wurde gelöst, indem ein Prototypwert für jede Spalte festgelegt wurde (mit Verwendung TableColumnExt#setPrototypeValue). Ich bin mir nicht sicher, ob ein Stammgast JTable Enthält auch diese Logik, aber es könnte einen Versuch wert sein, Ihre zu ersetzen JTable durch eine JXTable und setzen Sie den Prototyp.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top