Insubstantial / insubstantial

Swing look-and-feel library and assorted widgets
193 stars 58 forks source link

JTable broken when using a huge amount of entries #84

Closed PirolA closed 6 years ago

PirolA commented 12 years ago

Hello,

hhen using the Substance L&F, there is an error when using the JTable. From a very large number of cells, the following stack trace is output. The error only occurs with the use of Substance. With the default Java L&F the fault does not occur.

For help, I would be very grateful!

-Pirol

java.lang.NegativeArraySizeException at java.awt.image.DataBufferInt.(Unknown Source) at java.awt.image.Raster.createPackedRaster(Unknown Source) at java.awt.image.DirectColorModel.createCompatibleWritableRaster(Unknown Source) at java.awt.GraphicsConfiguration.createCompatibleImage(Unknown Source) at org.pushingpixels.substance.internal.utils.SubstanceCoreUtilities.getBlankImage(SubstanceCoreUtilities.java:600) at org.pushingpixels.substance.api.painter.decoration.ClassicDecorationPainter.paintDecorationArea(ClassicDecorationPainter.java:99) at org.pushingpixels.substance.internal.painter.DecorationPainterUtils.paintDecorationBackground(DecorationPainterUtils.java:197) at org.pushingpixels.substance.internal.painter.DecorationPainterUtils.paintDecorationBackground(DecorationPainterUtils.java:156) at org.pushingpixels.substance.internal.painter.BackgroundPaintingUtils.update(BackgroundPaintingUtils.java:112) at org.pushingpixels.substance.internal.painter.BackgroundPaintingUtils.updateIfOpaque(BackgroundPaintingUtils.java:61) at org.pushingpixels.substance.internal.ui.SubstanceTableUI.orgpushingpixelssubstanceinternaluiSubstanceTableUI__update(SubstanceTableUI.java:2450) at org.pushingpixels.substance.internal.ui.SubstanceTableUI.update(SubstanceTableUI.java) at javax.swing.JComponent.paintComponent(Unknown Source)

PirolA commented 11 years ago

I have a table with 120000 rows and 12 columns. When Substance tries to paint the background (decoration area) the error occurs.

"Output with -Dsubstancelaf.traceFile" 15:39:27.949: Blank 1500*2400000 java.lang.Thread.getStackTrace [-1] org.pushingpixels.substance.internal.utils.SubstanceCoreUtilities.getBlankImage [688] org.pushingpixels.substance.api.painter.decoration.ClassicDecorationPainter.paintDecorationArea [101] org.pushingpixels.substance.internal.painter.DecorationPainterUtils.paintDecorationBackground [197] org.pushingpixels.substance.internal.painter.BackgroundPaintingUtils.update [142] org.pushingpixels.substance.internal.painter.BackgroundPaintingUtils.update [83] org.pushingpixels.substance.internal.painter.BackgroundPaintingUtils.updateIfOpaque [61] org.pushingpixels.substance.internal.ui.SubstanceTableUI.orgpushingpixelssubstanceinternaluiSubstanceTableUI__update [2532] org.pushingpixels.substance.internal.ui.SubstanceTableUI.update [-1]

PirolA commented 6 years ago

Was caused by another problem in our app.

kirill-grouchnikov commented 6 years ago

"Blank 1500*2400000" is a sign that you have a ginormous component (2.4M pixels tall) that could probably benefit from some kind of an adapter / cell renderer approach.

As for the look-and-feel itself, Substance is about to see its 8.0.0 release today. You're always welcome to come back to https://github.com/kirill-grouchnikov/substance