public void setSize(int width, int height){ int maxWidth = width; int maxHeight = height; minSize.width = minSizeDefault.width; minSize.height = minSizeDefault.height; setMinimumSize(minSize); Dimension ps = getPreferredSize(); /* Add size of the vertical scrollbar by default. This could be improved * to be done only if the height exceeds the bounds. */ ps.width += scrollBarSize.width; ps.width = Math.max(Math.max(ps.width, minSize.width), getTitleComponentPreferredSize().width); maxWidth = Math.min(maxWidth, maxSize.width); maxHeight = Math.min(maxHeight, maxSize.height); boolean displayHorizontalScrollbar = (ps.width-scrollBarSize.width)>maxWidth; if (ps.width > maxWidth) { ps.width = maxWidth; if (displayHorizontalScrollbar){ ps.height += scrollBarSize.height; // will show horizontal scrollbar minSize.height += scrollBarSize.height; setMinimumSize(minSize); } } ps.height = Math.min(Math.max(ps.height, minSize.height), maxHeight); super.setSize(ps.width, ps.height); }
public void setSize(int width, int height){ int maxWidth = width; int maxHeight = height; minSize.width = minSizeDefault.width; minSize.height = minSizeDefault.height; setMinimumSize(minSize); Dimension ps = getPreferredSize(); /* Add size of the vertical scrollbar by default. This could be improved * to be done only if the height exceeds the bounds. */ ps.width += scrollBarSize.width; ps.width = Math.max(Math.max(ps.width, minSize.width), getTitleComponentPreferredSize().width); maxWidth = Math.min(maxWidth, maxSize.width); maxHeight = Math.min(maxHeight, maxSize.height); boolean displayHorizontalScrollbar = (ps.width-scrollBarSize.width)>maxWidth; if (ps.width > maxWidth) { ps.width = maxWidth; if (displayHorizontalScrollbar){ ps.height += scrollBarSize.height; // will show horizontal scrollbar minSize.height += scrollBarSize.height; setMinimumSize(minSize); } } ps.height = Math.min(Math.max(ps.height, minSize.height), maxHeight); super.setSize(ps.width, ps.height); }
ps.width = Math.max(Math.max(ps.width, minSize.width), getTitleComponentPreferredSize().width);