if (_preferredSize == null) {
if (_constraint != null) {
hintX = _constraint.adjustHintX(hintX);
hintY = _constraint.adjustHintY(hintY);
}
Dimension psize = computeSize(hintX, hintY);
if (_constraint != null) _constraint.adjustPreferredSize(psize, hintX, hintY);
// round our preferred size up to the nearest whole number; if we allow it to remain
// fractional, we can run into annoying layout problems where floating point rounding
// error causes a tiny fraction of a pixel to be shaved off of the preferred size of a
// text widget, causing it to wrap its text differently and hosing the layout