/** * Computes the maximum width of a label in the configuration form. * * @param configForm the configuration form containing all labels. * @return the maximum width of a label in the configuration form */ private int computeLabelWidth(ChatRoomConfigurationForm configForm) { int labelWidth = 0; Iterator<ChatRoomConfigurationFormField> configurationSet = configForm.getConfigurationSet(); while (configurationSet.hasNext()) { ChatRoomConfigurationFormField formField = configurationSet.next(); if (formField.getLabel() == null) continue; JLabel label = new JLabel(formField.getLabel()); int newLabelWidth = SwingUtilities.computeStringWidth( label.getFontMetrics(label.getFont()), formField.getLabel()); if (newLabelWidth > labelWidth) labelWidth = newLabelWidth; } // We add 10 pixels to be sure that even after adding the ':' char // the label will rest visible. return labelWidth + 10; }