d.height += i.top + i.bottom; int arrowButtonWidth = d.height - (i.top + i.bottom); cachedMinimumSize = new Dimension(d.width + arrowButtonWidth + i.left + i.right, d.height);
d.width += i.left + i.right + d.height; cachedMinimumSize = new Dimension(d.width, d.height + i.top + i.bottom);
  public Dimension getMinimumSize(JComponent c)  {    if (isMinimumSizeDirty)      {        Insets i = getInsets();    Dimension d = getDisplaySize();        d.height += i.top + i.bottom;        int arrowButtonWidth = d.height - (i.top + i.bottom);        cachedMinimumSize = new Dimension(d.width + arrowButtonWidth + i.left                                          + i.right, d.height);	isMinimumSizeDirty = false;      }    return new Dimension(cachedMinimumSize);  }