Sponsored link
XYLayout(Draw2D/GEF - Java Eclipse)
XYLayoutは子FigureをRectangleで指定します。
Layout無し(null Layout)と違って、子FigureのRectangleを元に、
親Rectangleのサイズを指定します。
例
単純なXYLayout
XYLayoutではConstraintにFigureの位置であるRectangleを指定します。
RectangleFigure rect1=new RectangleFigure(); rect1.setBackgroundColor(ColorConstants.green); panel.add(rect1,new Rectangle(10,10,30,30));
コード全文
GEFに含まれるdraw2d.jarが必要です。
コードはCVSからダウンロードできます。
/* * Created on 2005/08/02 * Author aki@www.xucker.jpn.org * License Apache2.0 or Common Public License */ package example.draw2d; import org.eclipse.draw2d.ColorConstants; import org.eclipse.draw2d.FigureCanvas; import org.eclipse.draw2d.Panel; import org.eclipse.draw2d.RectangleFigure; import org.eclipse.draw2d.XYLayout; import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; /** * * */ public class XYLayoutTest { public XYLayoutTest(Shell shell) { shell.setBounds(0,0,200,200); shell.setLayout(new FillLayout(SWT.VERTICAL)); FigureCanvas canvas = new FigureCanvas(shell); Panel panel=new Panel(); canvas.setContents(panel); XYLayout layout=new XYLayout(); panel.setLayoutManager(layout); RectangleFigure rect1=new RectangleFigure(); rect1.setBackgroundColor(ColorConstants.green); panel.add(rect1,new Rectangle(10,10,30,30)); RectangleFigure rect2 = new RectangleFigure(); rect2.setBackgroundColor(ColorConstants.orange); panel.add(rect2,new Rectangle(100,100,30,30)); } public static void main(String[] args) { Display display=new Display(); Shell shell=new Shell(display); XYLayoutTest app=new XYLayoutTest(shell); shell.open(); while(!shell.isDisposed()){ if (!display.readAndDispatch ()){ display.sleep (); } } display.dispose(); } }