Я пробовал это:
Text theText = new Text(theLabel.getText()); theText.setFont(theLabel.getFont()); double width = theText.getBoundsInLocal().getWidth();
и, похоже, работает нормально.