static int makeNiceButtons_maxImageSize = 128; // params = text, image, action, text, image, action, ... // or TextImageAction... // or a list of above stuff static DynamicHStack makeNiceButtons(O... params) { DynamicHStack stack = dynamicHStack().spacing(20); params = flattenArray2(params); for (int i = 0; i < l(params); ) { TextImageAction tia = null; S text, imageID; O action; if (params[i] instanceof TextImageAction) { tia = (TextImageAction) params[i]; i++; } else { tia = TextImageAction( str(get(params, i)), str(get(params, i+1)), get(params, i+2)); i += 3; } JButton b = jImageAndTextButton(tia.imageID, tia.text, tia.action); if (nempty(tia.toolTip)) setToolTip(b, tia.toolTip); resizeImageButtonToMax(b, makeNiceButtons_maxImageSize); setVerticalTextPosition(JButton.TOP, setFontSize(15, makeBold(b))); setVerticalAlignment(JButton.TOP, b); setMargin(10, b); stack.addComponent(b); } ret stack; }