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();
}
}
