Looks like that's the way drawString works. But to "get around" it, you will have to decide what you want the tabs to do and do that yourself. Presumably you want a tab character to be replaced by some amount of whitespace, but how much? Do you want a tab to be the same as e.g. 4 spaces? Or do you want it to put in enough whitespace to reach the next tab position, whatever that might be? The programming's up to you.