TableListBox scaling bug

Yes, you're right about what's going wrong - seems that the software renderer just has a rounding error that's causing the sub-pixel repaint to overlap a bit.

Looking into it, I don't think I should change anything though - I could indeed stop the paintCell methods being called for row numbers that are beyond getNumRows, but that'd mean checking getNumRows many times during a paint, and user-code could be doing anything in that function, so it could get expensive. Since the code was always written with the intention that the paint methods must be able to handle out-of-range values, I think it's best if you just check it in your class. I'll add a bit of extra explanation in the comments for that method to make this clear.