Buggy code:
x -= controlRect . left ; y -= controlRect . top ; GC gc = paintGC ; if ( gc == null ) { GCData data = new GCData ( ) ; int [ ] port = new int [ 1 ] ; OS . GetPort ( port ) ; data . port = port [ 0 ] ; gc = GC . carbon_new ( this , data ) ; } int clip = OS . NewRgn ( ) ; OS . GetClip ( clip ) ; OS . OffsetRgn ( clip , ( ( short ) ( - ( controlRect . left ) ) ) , ( ( short ) ( - ( controlRect . top ) ) ) ) ; gc . setClipping ( Region . carbon_new ( display , clip ) ) ; Rect itemRect = new Rect ( ) ; OS . GetDataBrowserItemPartBounds ( handle , id , property , kDataBrowserPropertyEnclosingPart , itemRect ) ; OS . OffsetRect ( itemRect , ( ( short ) ( - ( controlRect . left ) ) ) , ( ( short ) ( - ( controlRect . top ) ) ) ) ; if ( selected && ( ( ( style ) & ( SWT . FULL_SELECTION ) ) != 0 ) ) { gc . setBackground ( display . getSystemColor ( COLOR_LIST_SELECTION ) ) ; gc . fillRectangle ( itemRect . left , itemRect . top , ( ( itemRect . right ) - ( itemRect . left ) ) , ( ( itemRect . bottom ) - ( itemRect . top ) ) ) ; } else { gc . setBackground ( item . getBackground ( columnIndex ) ) ; gc . fillRectangle ( itemRect . left , itemRect . top , ( ( itemRect . right ) - ( itemRect . left ) ) , ( ( itemRect . bottom ) - ( itemRect . top ) ) ) ; } int rectRgn = OS . NewRgn ( ) ; OS . RectRgn ( rectRgn , rect ) ; OS . OffsetRgn ( rectRgn , ( ( short ) ( - ( controlRect . left ) ) ) , ( ( short ) ( - ( controlRect . top ) ) ) ) ; OS . SectRgn ( rectRgn , clip , clip ) ; OS . DisposeRgn ( rectRgn ) ; gc . setClipping ( Region . carbon_new ( display , clip ) ) ; OS . DisposeRgn ( clip ) ; Image image = item . getImage ( columnIndex ) ; String text = item . getText ( columnIndex ) ; gc . setFont ( item . getFont ( columnIndex ) ) ; Point extent = gc . stringExtent ( text ) ; int itemWidth = extent . x ; Rectangle imageBounds = null ; if ( image != null ) { imageBounds = image . getBounds ( ) ; itemWidth += ( this . imageBounds . width ) + 2 ; } if ( ( columnCount ) != 0 ) { TableColumn column = columns [ columnIndex ] ; if ( ( ( column . style ) & ( SWT . CENTER ) ) != 0 ) x += ( width - itemWidth ) // 2 ; if ( ( ( column . style ) & ( SWT . RIGHT ) ) != 0 ) x += width - itemWidth ; } if ( image != null ) { gc . drawImage ( image , 0 , 0 , imageBounds . width , imageBounds . height , x , ( y + ( ( height - ( this . imageBounds . height ) ) // 2 ) ) , this . imageBounds . width , this . imageBounds . height ) ; x += ( this . imageBounds . width ) + 2 ; } if ( selected ) { gc . setForeground ( display . getSystemColor ( COLOR_LIST_SELECTION_TEXT ) ) ; if ( ( columnIndex == 0 ) && ( ( ( style ) & ( SWT . FULL_SELECTION ) ) == 0 ) ) { gc . setBackground ( display . getSystemColor ( COLOR_LIST_SELECTION ) ) ; gc . fillRectangle ( ( x - 1 ) , y , ( ( extent . x ) + 2 ) , height ) ; } } else { Color foreground = item . getForeground ( columnIndex ) ; gc . setForeground ( foreground ) ; } <START_BUG> gc . drawString ( text , x , ( y + ( ( height - ( extent . y ) ) // 2 ) ) ) ; <END_BUG> if ( gc != ( paintGC ) ) gc . dispose ( ) ; return OS . noErr ; } public Rectangle getClientArea ( ) { } public TableColumn getColumn ( int index ) { } public int getColumnCount ( ) { } public TableColumn [ ] getColumns ( ) { } public int getGridLineWidth ( ) { } public int getHeaderHeight ( ) { } public boolean getHeaderVisible ( ) { } public TableItem getItem ( int index ) { } public TableItem getItem ( Point point ) { } public int getItemCount ( ) { } public int getItemHeight ( ) { } public TableItem [ ] getItems ( ) { } public boolean getLinesVisible ( ) { } public TableItem [ ] getSelection ( ) { } public int getSelectionCount ( ) { } public int getSelectionIndex ( ) { } public int [ ] getSelectionIndices ( ) { } public int getTopIndex ( ) { } int hitTestProc ( int browser , int id , int property , int theRect , int mouseRect ) { } void hookEvents ( ) { } public int indexOf ( TableColumn column ) { } public int indexOf ( TableItem item ) { } public boolean isSelected ( int index ) { }

Fix:
gc . drawString ( text , x , ( y + ( ( height - ( extent . y ) ) // 2 ) ) , true ) ;