2017-06-01 8 views
0

私は2つのJTableを持っています。すべてのJTableはBorderlayout(BorderLayout.PAGE_STARTへのTableHeaderおよびJTableからCenter)を持つコンテナに追加されます。これらのコンテナはJScrollPaneに追加されます。Java、GirdLayout、ScrollPane not working

2つのコンテナは、JPanelの中​​央に追加されたGridlayoutを持つコンテナに追加されます。

問題は、scrollBarが表示されていないか、スクロールバーが常に表示されても動作しないということです。 JTableには100以上のエントリがありますが、最初の〜30エントリだけが表示されます。

私はすでに検索を試みましたが、すでにいくつかの修正が見つかっていますが、機能しませんでした。私は好みのサイズでそれを試して、ScrollPaneと他のpossibiltiesにレイアウトを追加しましたが、何も働いていませんでした。

JTableのいくつかのコード:

 this.locations = new JTable(data, columnNames); 
     this.locations.getTableHeader().setReorderingAllowed(false); 
     this.locations.setDefaultEditor(Object.class, null); 
//  this.locations.setPreferredSize(new Dimension(100, 100)); 

     Container table = new Container(); 
     table.setLayout(new BorderLayout()); 
     table.add(this.locations.getTableHeader(), BorderLayout.PAGE_START); 
     table.add(this.locations, BorderLayout.CENTER); 

     JScrollPane scrollPane = new JScrollPane(table); 
     scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
     this.content.add(scrollPane); 

場所はJTableは、コンテンツが、その後のBorderLayoutでのJPanelに追加されるのGridLayout、とコンテナです。

+0

完了し、コンパイルのサンプルコードを追加してください。 – Amber

答えて

1
Container table = new Container(); 
    table.setLayout(new BorderLayout()); 
    table.add(this.locations.getTableHeader(), BorderLayout.PAGE_START); 
    table.add(this.locations, BorderLayout.CENTER); 

上記のコードは必要ありません。

必要なのは、次のとおりです。

this.locations = new JTable(data, columnNames); 
    JScrollPane scrollPane = new JScrollPane(table); 
    this.content.add(scrollPane); 
+0

ありがとう、今それは動作します。 – Meister96Fels