Vertikales Scrollen eines JTables

hammet

himekishi
Hallo Leute,

ich habe ein Problem mit einem JTable. Und zwar ist die Spaltenanzahl des JTables nicht fest definiert sondern kann variieren. Das JTable liegt auf einem JScrollPane.
Mein Problem ist es nun, dass jegliche Größenangaben der Columns ignoriert werden die JTable, sobald ich "setAutoResizeMode(JTable.AUTO_RESIZE_OFF)" setze, nicht mehr die gesamte Fläche des Viewport einnimmt.

Hatte jemand von euch schonmal das, oder ein ähnliches Problem und weiß Rat?


Anbei noch der Code, stark vereinfacht.
Java:
			String[] colNames = new String[colCount];

			for (int i = 0; i < colCount; i++) {

				colNames[i] = "";

			}

			tableModel = new MyTableModel(colNames);

			jTable_PANEL_01 = new JTable(tableModel);

			jTable_PANEL_01.setSelectionMode(
				ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
			jTable_PANEL_01.setCellSelectionEnabled(true);

			jTable_PANEL_01.setRowHeight(30);

			jTable_PANEL_01.getTableHeader().setReorderingAllowed(false);
			jTable_PANEL_01.getTableHeader().setResizingAllowed(false);

			if (this.colCount > 8) {

				jTable_PANEL_01.setAutoscrolls(true);
				  jTable_PANEL_01.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

			} else {

				jTable_PANEL_01.setAutoResizeMode(
					JTable.AUTO_RESIZE_ALL_COLUMNS);

			}


			while (...) {

                               // Logik um eine bestimmte Spalte mit Text zu füllen

			}

			new TableHandler(jTable_PANEL_01);

			jTable_PANEL_01.addMouseMotionListener(new MouseMotionAdapter() { ... });

			jTable_PANEL_01.addMouseListener(new MouseAdapter() { ... });
 
Hallo,

da es sich sehr seltsam anhört, kann ich gar nicht anders, als dich drauf hinzuweisen, dass es die JTable heißt. ;-)

Zu deinem Problem. Du sagst, dass die Spaltengrößen ignoriert werden. Allerdings sehe ich nicht, dass sie irgendwo gesetzt werden. Setzt du sie an einer anderen Stelle?

Gruß

Sascha
 
Die Größe setze ich in dem Fall nicht, das ist richtig. Der gepostete Code ist mein Ausgangscode und sollte um die Größe erweitert werden. Mehrere Versuche haben aber wie beschrieben nichts ergeben und so muss der Fehler eigentlich an dem geposteten Code liegen.
 
Ok das Problem hat sich erledigt.

Ich habe nachdem ich die JTable (hört sich auch blöd an :p) initialisiert habe, den Namen einer Spalte verändert worauf ein "fireTableStructureChanged()" aufgerufen wurde, welches anscheinend sämtliche Größeneinstellungen zurück gesetzt hat.

Trotzdem vielen Dank für deine Hilfe.
 

Neue Beiträge

Zurück