2013-02-15 13 views
6

私は、ユーザーが私にプロンプ​​トを表示したときに設定したいテーブルを持っています。問題は、テーブルがどれだけ多くの行を持つかを予測できないことです。表が表示されます私のパネルのコンストラクタでは、私はJScrollPaneに動的にJTableを追加する

// add empty scrollPane to JPanel which will later hold table 
       scrollPane = new JScrollPane(); 
    add(scrollPane); 

持ってこのクラスには、私は最終的に

public void displayTable(String[] columnNames, String[][] dataValues) 
{ 
    table = new JTable(dataValues, columnNames); 
    table.setPreferredScrollableViewportSize(new Dimension(300, 80)); 
    table.setFillsViewportHeight(true); 
    scrollPane.add(table); 

    this.setVisible(true); 
    scrollPane.repaint(); 

} 

問題があるテーブルを表示する場合、テーブルに呼び出されるメソッドが含まれています表示されません。 ScrollPaneがどこにテーブルがないのかの概要を見るだけです。なぜ表が表示されず、どうすれば修正できますか?

+0

すぐに役立つように、[SSCCE](http://sscce.org)を含めてください。 – mre

+0

私はこれが短くてポイントだと思った。私の質問は明確ではありませんでしたか? – Matt

+0

スイングについては、多くのニュアンスがあります。あなたが私たちに与えるより多くの情報、より簡単に私たちがあなたを助けることです。さもなければ、私たちは幸運になるかもしれませんが、暗闇の中で撮影したままです。 – mre

答えて

15

あなたはないJScrollPaneのではなく、そのJViewportのにコンポーネントを追加する必要があります

scrollPane.getViewport().add (table); 
+0

それはそれでした。ありがとうございました! – Matt

+1

代わりに、 'JViewport.setView(Component)'を使うこともできますが、同じことをします。 – MadProgrammer

+0

それは魅力的に機能しました。私がしていたことは、scrollPane.add(テーブル)でした。これで解決しました。 – yuva

5

代わりにJScrollPaneにテーブルを追加するには、スクロール区画のビューポートを作成し、テーブルとしてのビューを設定します。 代わりに以下のコードを使用して:
scrollPane.setViewportView(table)

2

を一般的に、あなたはまだ値を持っていないにもかかわらず、一緒にJTableJScrollPaneを作成します。

動的テーブルの場合は、拡張するDefaultTableModelまたはTableModelを使用することをお勧めします。

+0

+1正しい方法と正解、 – mKorbel

関連する問題