2017-10-04 2 views
0

Ich möchte meine Fußzeile Panel an der Unterseite meiner JPanel, ich habe versucht Folgendes.pinned footer innerhalb 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); 

Was fehlt mir hier?

+0

Können Sie einen Testfall erstellen? Du bist fast da. Vielleicht möchten Sie auch eine [layedpane] (https://docs.oracle.com/javase/tutorial/uiswing/components/layeredpane.html) verwenden – matt

+0

Wir müssen Ihren GUI-Code sehen, alles, was zu dem Problem gehört :) – Steampunkery

+0

@ Matt, ich habe gerade JTable innerhalb JScrollPane, und ich brauche Fußzeile für die Tabelle. Nichts spezieller Code. Und es tut mir leid, ich kann nicht alles zeigen. Und ich versuche LayeredPane zu verwenden, aber ich kann meine Fußzeile nicht anheften. Ich möchte vertikale Bildlauf für Tabelle und Fußzeile als ein Tischteil mit horizontaler Bildlauf haben. –

Antwort

0

sollten Diese

arbeiten
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

Danke, aber es tut es nicht. Ich muss Fußzeile mit Rolle wie auf dem Tisch tun –

+0

Sie müssen den Bereich Objecto zu Ihrem Container hinzufügen – Dinh

0

ich Fußzeile mit Scroll wie auf dem Tisch

A JScrollPane nicht diese Art von Funktionalität tun müssen, nicht unterstützt. Also musst du es irgendwie fälschen.

Vielleicht können Sie eine zweite JScrollPane als Fußkomponente verwenden. Dann teilen Sie das Modell der horizontalen JScrollBar. Wenn Sie den RSDinh-Code als Ausgangspunkt verwenden, können Sie beispielsweise Folgendes tun: