private Component toComponent( Object obj ) {
    	Component ret;
    	if( obj instanceof Object[] ) {
    		ret = SJPanel.createVerticalIPanel(null);
    		Object[] objs = (Object[]) obj;
    		for( int i=0; i<objs.length; ++i ) {
    			((SJPanel)ret).add( toComponent(objs[i]) );
    		}
    	} else if( obj instanceof String ) {
    		String str = (String) obj;
    		String strs[] = str.split("\n");
    		if( strs.length == 1 ) {
    			String s = (String) obj;
    			SJLabel xol;
    			if( s.length() == 0 ) {
    				xol = new SJLabel(" ", WidgetUtil.getOptionPaneProperty("main text filler"));
    				Dimension d = xol.getPreferredSize();
    				d.height /= 2;
    				xol.setPreferredSize( d );
    			} else {
    				xol = new SJLabel(s, WidgetUtil.getOptionPaneProperty("main text"));
    			}
    			xol.setAlignmentX(0);
    			return xol;
    		}
    		return toComponent( strs );
    	} else if( obj instanceof Icon ) {
    		SJLabel xol = new SJLabel((Icon)obj, WidgetUtil.getOptionPaneProperty("main text icon"));
			xol.setAlignmentX(0);
			return xol;
    	} else if( obj instanceof Component ) {
    		if( obj instanceof JComponent )
    			((JComponent)obj).setAlignmentX(0);
    		return (Component) obj;
    	} else {
    		ret = new SJLabel(obj.toString(), WidgetUtil.getOptionPaneProperty("main text"));
    	}
    	return ret;
    }