import edu.umd.cs.piccolo.util.PBounds; //导入方法依赖的package包/类
private static PNode createContentNode( String text, Font font, Color foreground, Color disabledForeground, boolean enabled, BufferedImage image, BufferedImage disabledImage, TextPosition textPosition, double imageTextGap ) {
PNode textNode = createTextNode( text, font, foreground, disabledForeground, enabled );
PNode imageNode = createImageNode( image, disabledImage, enabled );
PComposite content = new PComposite();
content.addChild( textNode );
content.addChild( imageNode );
// layout text and image
double textX, imageX = 0;
double textY, imageY = 0;
PBounds tb = textNode.getFullBoundsReference();
PBounds ib = imageNode.getFullBoundsReference();
if ( textPosition == TextPosition.ABOVE ) {
textX = 0;
imageX = tb.getCenterX() - ( ib.getWidth() / 2 );
textY = 0;
imageY = tb.getMaxY() + imageTextGap;
}
else if ( textPosition == TextPosition.BELOW ) {
imageX = 0;
textX = ib.getCenterX() - ( tb.getWidth() / 2 );
imageY = 0;
textY = ib.getMaxY() + imageTextGap;
}
else if ( textPosition == TextPosition.LEFT ) {
textX = 0;
imageX = tb.getMaxX() + imageTextGap;
textY = 0;
imageY = tb.getCenterY() - ( ib.getHeight() / 2 );
}
else if ( textPosition == TextPosition.RIGHT ) {
imageX = 0;
textX = ib.getMaxX() + imageTextGap;
imageY = 0;
textY = ib.getCenterY() - ( tb.getHeight() / 2 );
}
else {
throw new UnsupportedOperationException( "unsupported text position: " + textPosition );
}
textNode.setOffset( textX, textY );
imageNode.setOffset( imageX, imageY );
return content;
}