Sponsored link
BorderLayout(Draw2D/GEF - Java Eclipse)
おなじみのBorderLayoutです。Figureの位置を上・下・左・右・中央から選びます。
レイアウトの位置は、親Figureに追加時に、BorderLayout.TOP 等をConstantsの引数の位置へ渡します。
Constantsを追加しないとレイアウトが機能しません。
機能
水平・垂直のスペース
setHorizontalSpacing(int space);
setVerticalSpacing(int space)
にて指定可能
例
5箇所に追加
BorderLayout layout=new BorderLayout(); panel.setLayoutManager(layout); set(panel,"top",BorderLayout.TOP); set(panel,"bottom",BorderLayout.BOTTOM); set(panel,"center",BorderLayout.CENTER); set(panel,"left",BorderLayout.LEFT); set(panel,"right",BorderLayout.RIGHT);
5箇所に追加・スペース指定
水平には20pixel・垂直には10pixelスペースを空けるよう指定
BorderLayout layout=new BorderLayout(); layout.setHorizontalSpacing(20); layout.setVerticalSpacing(10); panel.setLayoutManager(layout); --略--
3箇所に追加
上・左・中央に追加した場合
コード全文
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.first; import org.eclipse.draw2d.BorderLayout; import org.eclipse.draw2d.ColorConstants; import org.eclipse.draw2d.Figure; import org.eclipse.draw2d.FigureCanvas; import org.eclipse.draw2d.Label; import org.eclipse.draw2d.LineBorder; import org.eclipse.draw2d.Panel; 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 BorderLayoutTest { public BorderLayoutTest(Shell shell) { shell.setBounds(0,0,150,150); shell.setLayout(new FillLayout(SWT.VERTICAL)); FigureCanvas canvas = new FigureCanvas(shell); Panel panel=new Panel(); panel.setBackgroundColor(ColorConstants.orange); canvas.setContents(panel); BorderLayout layout=new BorderLayout(); layout.setHorizontalSpacing(20); layout.setVerticalSpacing(10); panel.setLayoutManager(layout); set(panel,"top",BorderLayout.TOP); set(panel,"bottom",BorderLayout.BOTTOM); set(panel,"center",BorderLayout.CENTER); set(panel,"left",BorderLayout.LEFT); set(panel,"right",BorderLayout.RIGHT); } public void set(Figure parent,String label,Object constants){ Label labelFigure=new Label(label); labelFigure.setBorder(new LineBorder()); parent.add(labelFigure,constants); } public static void main(String[] args) { Display display=new Display(); Shell shell=new Shell(display); BorderLayoutTest app=new BorderLayoutTest(shell); shell.open(); while(!shell.isDisposed()){ if (!display.readAndDispatch ()){ display.sleep (); } } display.dispose(); } }