2017-10-04 17 views
0

私のフッタパネルをJPanelの底に固定したいと思っています。JScrollPane内の固定フッタ

JPanel pane = new JPanel(); 
pane.setLayout(new BorderLayout()); 
pane.add(header, BorderLayout.PAGE_START); 
pane.add(table, BorderLayout.CENTER); 
pane.add(footer, BorderLayout.PAGE_END); 
JScrollPane SP = new JScrollPane(pane, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 

ここでは何が欠けていますか?

+0

テストケースを作れますか?あなたはほとんどそこにいます。また、[layeredpane](https://docs.oracle.com/javase/tutorial/uiswing/components/layeredpane.html)の使用を検討することもできます。 – matt

+0

GUIコードを表示する必要があります。そのすべては問題に関連しています。 – Steampunkery

+0

@matt、JScrollPaneの中にJTableを持っていますが、そのためにはfooterが必要です。特別なコードはありません。そして、申し訳ありませんが、私はそれをすべて示すことはできません。そしてlayeredPaneを使用しようとしましたが、フッターを固定できません。私はテーブルのための垂直スクロールと、水平スクロールのテーブル部分としてのフッターをしたい。 –

答えて

0

これは私が

A JScrollPaneには、この種の機能をサポートしていないテーブルの上のようなスクロールとフッターを行う必要があり

JPanel child = new JPanel(new BorderLayout()); 
child.add(header, BorderLayout.PAGE_START); 
child.add(table, BorderLayout.CENTER); 
JScrollPane scrollPane = new JScrollPane(child, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
JPanel pane = new JPanel(new BorderLayout()); 
pane.add(scrollPane, BorderLayout.CENTER); 
pane.add(footer, BorderLayout.PAGE_END); 
+0

ありがとうございますが、そうではありません。私はテーブルのようなスクロールでフッタを行う必要があります –

+0

コンテナにペイントObjectoを追加する必要があります – Dinh

0

動作するはずです。だからあなたはどうにかそれを偽造する必要があります。

おそらく、2番目のJScrollPaneをフッターコンポーネントとして使用できます。次に、水平JScrollBarのモデルを共有します。 RSDinhのコードを出発点として使用すると、次のようなことができます:

//pane.add(footer, BorderLayout.PAGE_END); 
JScrollPane footerScrollPane = new JScrollPane(footer); 
JScrollBar horizontal = footerScrollPane.getHorizontalScrollBar(); 
horizontal.setModel(scrollPane.getHorizontalScrollBar().getModel());