void (Container parent) { Insets i = parent.getInsets(); Dimension size = parent.getSize(); Dimension textPrefSize = myTextPanel.getPreferredSize(); Dimension nextPrefSize = myNextLabel.getPreferredSize(); int textWidth = (i.left + i.right + textPrefSize.width + nextPrefSize.width <= size.width) ? textPrefSize.width : size.width - nextPrefSize.width - i.left - i.right; myTextPanel.setBounds(i.left, (size.height-textPrefSize.height) / 2, textWidth, textPrefSize.height); myNextLabel.setBounds(i.left + textWidth, (size.height-nextPrefSize.height) / 2, nextPrefSize.width, nextPrefSize.height); }