JTableよりも効率が良くなるオブジェクト
-
28-10-2019 - |
質問
データベースの視覚化を作成したいと思います。フルデスクトップアプリケーションであり、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
実際の問題です、私はパフォーマンスの問題がありました JXTable
s(注:swingxバージョン JTable
)大規模と組み合わせて TableModel
sテーブルがすべての要素を繰り返して、ペイントする前に列サイズを決定します。
これは、各列のプロトタイプ値を設定することで解決されました(使用 TableColumnExt#setPrototypeValue
)。レギュラーかどうかはわかりません JTable
このロジックも含まれていますが、あなたを置き換える価値があるかもしれません JTable
aによって JXTable
プロトタイプを設定します。
所属していません StackOverflow