質問

データベースの視覚化を作成したいと思います。フルデスクトップアプリケーションであり、Excelに似ています。 JTableデータベースの視覚化100行に入れると、それぞれが6列の列を備えていると、アプリケーションが押しつぶされています。そのようなタスクのより良いクラスはありますか?または他の賢い方法?

それは私がやり方です:

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"};
}
役に立ちましたか?

解決

上記のコードの1つの問題は、データ2-Dオブジェクト[10] []配列、Komorkiが列文字列[] Array、nazwykolumnと一致しないことです。 7列があり、オブジェクト配列の最初の配列インデックスとして7列が必要です。これを変更することを検討してください:

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

これに:

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

手始めに。

他のヒント

他の人が述べたように:プロファイリングを試しましたか?私は個人的にJProfilerと良い経験をしています。

まだわかりませんが JTable 実際の問題です、私はパフォーマンスの問題がありました JXTables(注:swingxバージョン JTable)大規模と組み合わせて TableModelsテーブルがすべての要素を繰り返して、ペイントする前に列サイズを決定します。

これは、各列のプロトタイプ値を設定することで解決されました(使用 TableColumnExt#setPrototypeValue)。レギュラーかどうかはわかりません JTable このロジックも含まれていますが、あなたを置き換える価値があるかもしれません JTable aによって JXTable プロトタイプを設定します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top