JTable nicht komplett scroll bar

-Lenny-

Mitglied
Guten Tag,

ich habe ein Programm geschrieben, welches Einträge die aus einer ArrayList in ein DefaultTableModel geschrieben werden.
Das Model wird dann in ein JTable gefügt, welche sich in einem JScrollPane befindet.
Nun gibt es ein Problem. Sobald ich eine gewissen Anzahl von Einträgen habe, wird die JTable nicht mehr korrekt dargestellt, ich kann nämlich nur bis zu einer gewissen Anzahl von Einträgen scrollen. (siehe Bild).

hab es schon einmal mit JTable.setSize() und JScrollPane.setSize() in Abhängigkeit von der Anzahl der Einträge bzw. Zeilen.

Wisst ihr da was? kann natürlich sein, dass ich auch einfach mal komplett auf dem Schlauch stehe.
 

Anhänge

  • FehlerJTable.jpg
    FehlerJTable.jpg
    100,1 KB · Aufrufe: 31

KrokoDiehl

Top Contributor
Kannst du etwas Code zeigen? Wie wird JTable, JScrollPane gelayoutet? Sonst könnt ich mir noch denken, dass es etwas mit Aktualisierung zutun hat; Sprich wenn du Daten ins Modell steckst, dass die JTable (=View) das nicht korrekt mitbekommt.
 

-Lenny-

Mitglied
Hier ein wie die JTable im frame erstellt wird.


Java:
/*************************************************************************************************************************************************************************/
                /***********************************************************************************Filmtabelle*******************************************************************************/
                /*************************************************************************************************************************************************************************/
                TabellenContainer = new JScrollPane();
                getContentPane().add(TabellenContainer);
                

                TabellenContainer.setBounds(275, 93, 609, 546);
                {

                    Filmtable = new JTable();
                    Filmtable.setModel(new javax.swing.table.DefaultTableModel(new Object[][]{{null, null}}, new String[]{
                                "Id", "Titel", "Genre", "Laenge", "Bewertung", "gesehen",}) {

                        public boolean isCellEditable(int rowIndex, int columnIndex) {

                            if (columnIndex == 0 || columnIndex == 1 || columnIndex == 2 || columnIndex == 3 || columnIndex == 4) {
                                return false;
                            }
                            return true;
                        }

                        public Class getColumnClass(int columnIndex) {
                            if (columnIndex == 5) {
                                return Boolean.class;
                            }

                            return String.class;
                        }
                    });

                     model = master.updateTable(Filmtable, Combobox.getSelectedItem().toString(), getRadio(), getSearchfield());
                    TabellenContainer.setViewportView(Filmtable);
                    Filmtable.setModel(model);
                    Filmtable.getTableHeader().setReorderingAllowed(false);
                    Filmtable.setSize(606,519+(model.getRowCount()*7));
                    Filmtable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

                    Filmtable.setPreferredSize(new java.awt.Dimension(606, (519 + (Filmtable.getRowCount() * 5))));
                    Filmtable.getColumnModel().getColumn(0).setMaxWidth(0);
                    Filmtable.getColumnModel().getColumn(0).setMinWidth(0);
                    Filmtable.getColumnModel().getColumn(0).setPreferredWidth(0);
                    Filmtable.getColumnModel().getColumn(0).setWidth(0);
                    Filmtable.getColumnModel().getColumn(1).setPreferredWidth(280);
                    Filmtable.getColumnModel().getColumn(2).setPreferredWidth(100);
                    Filmtable.getColumnModel().getColumn(3).setPreferredWidth(70);
                    Filmtable.getColumnModel().getColumn(4).setPreferredWidth(50);
                    Filmtable.getColumnModel().getColumn(5).setPreferredWidth(50);

jetzt hab ich noch mal rumgespielt und eine neue Methode im Controller geschrieben, die immer aufgerufen wird, wenn sich was ändert.

Java:
public void setSizeOfTable() {
        System.out.println("Anzahl Reihen: " + window.getModel().getRowCount());
        //window.getTabellenContainer().setMaximumSize(window.getFilmtable().getSize());
        window.getFilmtable().setSize(606, 519 + (window.getModel().getRowCount() * window.getModel().getRowCount()));
        //window.getTabellenContainer().setMaximumSize(new Dimension(606, 519 + (window.getModel().getRowCount() * window.getModel().getRowCount())));
        window.getFilmtable().setModel(window.getModel());
        //window.getTabellenContainer().setBounds(275, 93, 609, 519 + (window.getModel().getRowCount() * window.getModel().getRowCount()));
        window.getTabellenContainer().setMaximumSize(window.getTabellenContainer().getBounds().getSize());
        window.getFilmtable().setPreferredScrollableViewportSize(new Dimension(606, 519 + (window.getModel().getRowCount() * window.getModel().getRowCount())));
        System.out.println(window.getTabellenContainer().getLayout());
        window.getTabellenContainer().setViewportView(window.getFilmtable());
    }

Leider mit mäßigen erfolg :(
 

KrokoDiehl

Top Contributor
Ok, mir fällt auf, dass du offenbar ein Null-Layout verwendest ... ich tippe einfach mal dass hier der Hund begraben liegt. Ich bin mir zwar nicht 100%ig sicher, aber ich meine dass die ScrollPane auf die preferredSize ihres Viewports (also der Tabelle) achtet und dann entsprechend Scrollbalken anzeigt. Wenn du Einträge in die Tabelle (bzw. das Modell) steckst ändert die Tabelle ihre pref.Size und die ScrollPane wiederum passt sich ggfs an.
Da du diese Berechnungen alle selbst machst finde ich schwer nachvollziehbar wo hier der Fehler sein könnte. Zumal es viele Dinge wie Border/Spacing/... gibt die man alle noch beachten müsste.

Mein ernstgemeinter Rat ist also diese Sache den Layout-Managern zu überlassen. Vielleicht kannst du es zur Analyse mal auf einen einfachen JFrame (mit Layout-Mgr) stecken und schauen ob die Tabelle immernoch dieses Fehlverhalten an den Tag legt, ich meine so etwas:
Java:
final JFrame frame = new JFrame("Filmtable-Test");
frame.add(new JScrollPane(filmtable), BorderLayout.CENTER);
frame.pack();
SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
        frame.setVisible(true);
    }
});
Sprich anfänglich ohne das Ganze
Code:
setSize()
. Wenn es späterhin dann darum geht die Tabellengröße anzupassen (optimale Spaltenbreiten etc.), dann findet man dazu noch viele Hilfen in diesem Forum und im Internet.
 

-Lenny-

Mitglied
Ich werde dir später mal ein Feedback geben, hab leider gerade keine Zeit es zu testen.
Vielen Dank schon mal!

Edit: Habe mal eben schnell die MovieListe in eine andere Tabelle in einem Dialog von meinem Programm eingefügt und es lief auf anhieb. Diese wird nämlich durch ein Layout gesteuert. ein Hoch auf den intern NetBeans Gui Bilder. Dieser hat es im Gegensatz zum Jigloo aus Eclipse vernünftig gemacht.
Naja aber am Ende ist ja eh immer der Programmierer gefragt.
Werd es später dann mal auf das Hauptframe übertragen.

Vielen Dank nochmal für dein Tipp bzw. Lösung!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
M JTable.setDefaultRenderer(...) greift nicht AWT, Swing, JavaFX & SWT 0
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
B JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
Thallius Warum refrehsed mein JTable nicht? AWT, Swing, JavaFX & SWT 5
K JTable getValueAt() klappt nicht immer AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
T Swing JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
O JTable linksbündig drucken (nicht der Zelleninhalt) AWT, Swing, JavaFX & SWT 2
L Swing JTable refresht die Column Namen nicht AWT, Swing, JavaFX & SWT 0
S JTable übernimmt Änderungen nicht AWT, Swing, JavaFX & SWT 2
J Swing JTable Zeile nicht auswählbar machen AWT, Swing, JavaFX & SWT 0
G JTable als fixierte Spalte in Scrollpane scrollt nicht mit... AWT, Swing, JavaFX & SWT 1
M JList wird angezeigt, JTable (DefaultTableModel) nicht AWT, Swing, JavaFX & SWT 7
M "Update" der JTable funktioniert nicht AWT, Swing, JavaFX & SWT 2
S JTable nach aktualisierung - neue Zeile nicht "klickbar" AWT, Swing, JavaFX & SWT 0
D Swing Letzte Zeile einer JTable nicht über RowSorter sotieren AWT, Swing, JavaFX & SWT 2
D JTable markier- aber nicht veränderbar AWT, Swing, JavaFX & SWT 10
A remove(Component) funktioniert nicht; JTable AWT, Swing, JavaFX & SWT 4
M Swing JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
Q Swing MouseListener auf JTable geht nicht AWT, Swing, JavaFX & SWT 2
A Swing JTable wird nicht über zurückegebene Referenz geaddet.Wieso nicht? AWT, Swing, JavaFX & SWT 5
0 JTable Spaltenbreite automatisch an Inhalt anpassne geht nicht AWT, Swing, JavaFX & SWT 3
D JTable Columns wollen einfach nicht resizen AWT, Swing, JavaFX & SWT 5
S JTable Zellinhalt markierbar aber nicht editierbar AWT, Swing, JavaFX & SWT 4
W Neues TableModel und JTable wird nicht refreshed AWT, Swing, JavaFX & SWT 3
T jTable Spaltenbreite lässt sich nicht ändern AWT, Swing, JavaFX & SWT 8
D Jtable mit Dropdown Menü erweitern funktioniert nicht AWT, Swing, JavaFX & SWT 5
M JTable übernimmt Hintergrundfabe nicht AWT, Swing, JavaFX & SWT 7
X JTable Selektierte Reihe kann nicht gelöscht werden AWT, Swing, JavaFX & SWT 2
bERt0r Swing JTable.setDefaultRenderer funktioniert nicht AWT, Swing, JavaFX & SWT 3
T iText - JTable to PDF - titel werden nicht angezeigt AWT, Swing, JavaFX & SWT 3
C Swing JTable verbindet sich nicht mit Model AWT, Swing, JavaFX & SWT 20
P Swing Jtable mit Delete Button (Button verschwindet nicht bei Delete)) AWT, Swing, JavaFX & SWT 5
K JTable im Browser nicht zu sehen - Applet AWT, Swing, JavaFX & SWT 6
C Daten aus DB -> JTable aktualisieren klappt nicht AWT, Swing, JavaFX & SWT 16
G Swing JTable nicht editierbar AWT, Swing, JavaFX & SWT 2
S JTable - Auf spezielle Eingabe nicht reagieren. AWT, Swing, JavaFX & SWT 5
Spin JTable Header wird nicht angezeigt ohne ScrollPane AWT, Swing, JavaFX & SWT 3
X JTable Zellen nicht editierbar AWT, Swing, JavaFX & SWT 5
F JTable soll mit Buttons befüllt werden, aber nicht in jede Zelle einer Spalte AWT, Swing, JavaFX & SWT 3
GianaSisters Swing ComboBox im jTable (in bestimmter Zelle nicht über die ganze Spalte) AWT, Swing, JavaFX & SWT 4
F Swing JTable.setCellEditor funktioniert nicht AWT, Swing, JavaFX & SWT 2
M Swing CheckBoxen werden nicht in jTable angezeigt AWT, Swing, JavaFX & SWT 3
C JButton in JTable ist nicht klickbar AWT, Swing, JavaFX & SWT 4
C Swing Inhalt einer JTable aktualisieren und filten nach Feldern die nicht in der Tabelle sind AWT, Swing, JavaFX & SWT 3
xehpuk Swing JScrollBar wird nicht eingeblendet, wenn JTable befüllt wird AWT, Swing, JavaFX & SWT 4
vandread Swing JTable / DefaultTableModelwird nicht mit sortiert AWT, Swing, JavaFX & SWT 2
K JTable wird nicht aktualisiert, wenn Filter gesetzt ist AWT, Swing, JavaFX & SWT 9
E Swing JTable MousePosition nicht lesbar?! AWT, Swing, JavaFX & SWT 4
E Swing JComboBox als CellEditor in JTable zeigt Elemente nicht sofort an AWT, Swing, JavaFX & SWT 5
S Jtable wird nicht aktualisiert AWT, Swing, JavaFX & SWT 8
C JTable in JFrame wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
L Daten werden in JTable nicht angezeigt:( AWT, Swing, JavaFX & SWT 6
C JTable markierte Zelle wird bei removeRow nicht mit gelöscht AWT, Swing, JavaFX & SWT 6
T JTable mit Renderer sortiert die gerenderte Spalte nicht richtig AWT, Swing, JavaFX & SWT 2
hdi Swing JTable & Filtern: Daten nicht in der View AWT, Swing, JavaFX & SWT 2
H Swing Jtable wird nicht angezeigt..hilfe!! AWT, Swing, JavaFX & SWT 16
B JTable, Spalte nicht verschiebbar AWT, Swing, JavaFX & SWT 2
B Swing Einzelne Zelle in JTable soll NICHT auswählbar sein AWT, Swing, JavaFX & SWT 9
G Swing JTable will sich einfach nicht aktualisieren AWT, Swing, JavaFX & SWT 4
raptorrs Swing MouseListener reagiert nicht auf Instanz einer JTable AWT, Swing, JavaFX & SWT 6
P finde den Fehler im JTable nicht AWT, Swing, JavaFX & SWT 2
Roumeo Swing Verzweifle: JTable funktioniert nicht ganz wie es soll... AWT, Swing, JavaFX & SWT 12
calzone Swing JTable, Werte aktualisieren klappt nicht! AWT, Swing, JavaFX & SWT 7
A Swing JTable wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
J JTable - Spaltenzellen nicht fokusierbar machen AWT, Swing, JavaFX & SWT 15
T JTable - Einzelne Spalte nicht sortieren? AWT, Swing, JavaFX & SWT 2
J JTable Model laesst sich nicht serialisieren? AWT, Swing, JavaFX & SWT 16
A JTable im JTabbedPane -> Überschriften werden nicht angez AWT, Swing, JavaFX & SWT 2
G JTable in Spalte von anderer JTable nicht editierbar AWT, Swing, JavaFX & SWT 7
O JTable RowSelection funktioniert nicht nach ColumSort AWT, Swing, JavaFX & SWT 2
G JTable - getRowCount() funktioniert nicht AWT, Swing, JavaFX & SWT 2
P JTable: nicht im gewünschten Look&Feel AWT, Swing, JavaFX & SWT 3
O Hgr- Farbe einer JTable ändert sich nicht AWT, Swing, JavaFX & SWT 11
S JTable nimmt TableModel nicht an AWT, Swing, JavaFX & SWT 4
S JTable Werte werden nicht übernommen AWT, Swing, JavaFX & SWT 2
A JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
G JTable - prepareRenderer() überschreiben klappt nicht AWT, Swing, JavaFX & SWT 2
K JTable Spalten nicht verschieben AWT, Swing, JavaFX & SWT 2
C JTable aktualisiert die Anzeige nicht AWT, Swing, JavaFX & SWT 2
M JTable wird in JFrame nicht angezeigt (händisch) AWT, Swing, JavaFX & SWT 6
G JTable spaltennamen ändern sich nicht AWT, Swing, JavaFX & SWT 4
P jTable mit Model lässt sich nicht neu laden AWT, Swing, JavaFX & SWT 5
G JTable (AbstractTableModel) wird nicht aktualisiert AWT, Swing, JavaFX & SWT 2
M JTable & Problem, das nicht die komplette Zeile gefärbt AWT, Swing, JavaFX & SWT 6
J jTable Daten werden nicht sofort sichtbar AWT, Swing, JavaFX & SWT 5
M JTable soll nicht bearbeitbar sein AWT, Swing, JavaFX & SWT 2
D jTable ausdrucken => € zeichen wird nicht richtig angezei AWT, Swing, JavaFX & SWT 7
J JTable skaliert nicht beim Fenstergroessenveraendern AWT, Swing, JavaFX & SWT 2
N JTable zeigt ColumnHeaders nicht an AWT, Swing, JavaFX & SWT 2
G JTable wird nicht immer angezeigt AWT, Swing, JavaFX & SWT 4
P JTable sortiert ProgressBar nicht AWT, Swing, JavaFX & SWT 8
S JTable soll nicht mehr editierbar sein! AWT, Swing, JavaFX & SWT 2
G JTable setValueAt und getValueAt übergeben columnIndex nicht AWT, Swing, JavaFX & SWT 6
W JTable wird vertikal in JScrollPane nicht ganz angezeigt AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben