ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
3623
3623
EMPFEHLEN
-
Servus
habt ihr ne idea wie ich bei einen JTable die autosize für die Überschriftenzeile ausschalte.
denn wenn ich mit
jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
arbeite schiebt er die Felder nicht mehr zusammen aber bei zu großen namem kommt nur noch sowas wie Anschrift des.... und das muss man doch ganz ausschalten können?
-
Moin,
such mal hier im Forum nach "Optimale Spaltenbreite", "Spaltenbreite anpassen" o.ä. IIRC hatten wir das Thema schon mal.
-
Servus
hab dein tip ausprobiert und das forum durchsucht aber nix gefunden hab dann sogar nach JTable gesucht um was zu finden.
Hab mir die api auch nochmal durchgelesen aber find da auch nix oder bin zu blind
kannst mir nochmal helfen
-
Hm, ich dachte ich hätte das schon mal geschrieben.
Also gut, dann jetzt aber:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
/** * Setzt für alle Spalten die optimale Spaltenbreite. * */ private void sizeColumnsToFit() { Rectangle viewRect = yourScrollPane.getViewport().getViewRect(); Point upperRow = new Point(viewRect.x, viewRect.y); Point lowerRow = new Point(viewRect.x, viewRect.y + viewRect.height - 1); for (int index = 0; index < yourTable.getColumnCount(); index++) { TableColumn col = yourTable.getColumnModel().getColumn(index); int prefSize = 0; if (col.getHeaderRenderer() != null) prefSize = col .getHeaderRenderer() .getTableCellRendererComponent(null, col.getHeaderValue(), false, false, 0, 0) .getPreferredSize() .width; else prefSize = yourTable .getDefaultRenderer(String.class) // je nachdem .getTableCellRendererComponent( yourTable, col.getHeaderValue(), false, false, 0, 0) .getPreferredSize() .width; int fromRow = yourTable.rowAtPoint(upperRow) != -1 ? yourTable.rowAtPoint(upperRow) : 0; int toRow = yourTable.rowAtPoint(lowerRow) != -1 ? yourTable.rowAtPoint(lowerRow) : yourTable.getRowCount(); for (int rowIndex = fromRow; rowIndex < toRow; rowIndex++) prefSize = Math.max( prefSize, yourTable .getCellRenderer(rowIndex, index) .getTableCellRendererComponent( yourTable, yourTable.getModel().getValueAt(rowIndex, index), false, false, rowIndex, index) .getPreferredSize() .width); col.setPreferredWidth(prefSize); col.setWidth(prefSize); } // for 0..columnCount }
Musst natürlich yourTable mit Deiner Variablen ersetzen, ebenso yourScrollPane. Dann sollte das funktionieren. Zumindest hatten wir das so im Einsatz...
-
Servus
danke für das progi also es sieht jetzt besser aus wie vorher.
aber irgendwie seh ich dorch dein quellcode absolute ned durch.
und mir ist eingefahlen es währe doch sinvoll die Table so formatieren das die Überschriftenzeile sich nach dem text der in die zeilen rein kommt angepasst werden kann so wie was du schon mal geposted hast
http://www.tutorials.de/tutorials157893.htmlGeändert von Serethos (13.04.05 um 16:05 Uhr)
-
kannst mir vieleicht nochmal weiter helfen versuch gerade dein quellcode zuverstehen hab da ein problem bei
hab rausgefunden das die math.max den größeren wert zurückgibt aber da bekomm ich auch immer ne null pointer exception vieleicht kannst ja was damit anfangenCode :1 2 3 4 5 6 7 8 9 10 11 12 13
prefSize = Math.max( prefSize, getCellRenderer(rowIndex, index) .getTableCellRendererComponent( this, getValueAt(rowIndex, index), false, false, rowIndex, index) .getPreferredSize() .width);
java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Unknown Source)
at javax.swing.table.DefaultTableColumnModel.getColumn(Unknown Source)
at javax.swing.JTable.getCellRenderer(Unknown Source)
at gui.Record.Result.sizeColumnOptimal(Result.java:230)
at gui.Record.Result.sizeColumnsOptimal(Result.java:161)
at gui.Query$40.actionPerformed(Query.java:1922)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
.
.
.
.
.
-
Scheinen Probleme mit dem CellRenderer zu sein. Bau Dir ein paar Debugausgaben ein und sieh selbst nach.
Ähnliche Themen
-
JApplet größe anpassen
Von zuckerbrini im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 28.01.09, 09:50 -
WMP Größe anpassen
Von DiDiJo im Forum HTML & XHTMLAntworten: 5Letzter Beitrag: 15.01.09, 16:28 -
DIV-Größe anpassen
Von DelphiDell im Forum CSSAntworten: 3Letzter Beitrag: 30.04.06, 16:07 -
SWT-Tree - Größe anpassen
Von lina- im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 10.10.05, 16:18 -
seiten größe anpassen
Von layla im Forum HTML & XHTMLAntworten: 15Letzter Beitrag: 14.07.04, 22:35





Zitieren
Login





