int (int width) { myEditorPane.setBounds(0, 0, width, MAX_DEFAULT.height); Dimension preferredSize = myEditorPane.getPreferredSize(); int height = preferredSize.height + (needsToolbar() ? myControlPanel.getPreferredSize().height : 0); JScrollBar scrollBar = myScrollPane.getHorizontalScrollBar(); int reservedForScrollBar = width < preferredSize.width && scrollBar.isOpaque() ? scrollBar.getPreferredSize().height : 0; Insets insets = getInsets(); return MathUtil.clamp(height, MIN_DEFAULT.height, MAX_DEFAULT.height) + insets.top + insets.bottom + reservedForScrollBar; }