アキはフリーランスのプログラマーです >> Java >> Eclipse
Sponsored link

このエントリーを含むはてなブックマーク このエントリーを含むECナビ人気ニュース

ToolbarLayout(Draw2D/GEF - Java Eclipse)


特徴は、

指定の方向(水平・垂直)にFigureを追加していきます。FlowLayoutとは違って決して折り返しません。

また追加される方向でない側の水平位置/垂直位置レイアウトを指定したり、親Figureと同じにすることも可能


グラフとか表示するのにむいていると思います。

機能

Spacing

FigureとFigureの間隔

StretchMinorAxis

垂直にFigureを追加する場合、Figureの幅

水平にFigureを追加する場合、Figureの高さ

を親Figureの幅/高さ と同じになるように拡大するかどうか

MinorAlignment

StretchMinorAxisがtrueの場合無効

垂直にFigureを追加する場合、水平位置のレイアウト

ToolbarLayout.ALIGN_BOTTOMRIGHT 右

ToolbarLayout.ALIGN_CENTER   中央

ToolbarLayout.ALIGN_TOPLEFT 左

水平にFigureを追加する場合、垂直位置のレイアウト

ToolbarLayout.ALIGN_BOTTOMRIGHT  下

ToolbarLayout.ALIGN_CENTER  中央

ToolbarLayout.ALIGN_TOPLEFT 上


水平上にFigureを追加・下側にレイアウト


ToolbarLayout layout=new ToolbarLayout(true);
layout.setMinorAlignment(ToolbarLayout.ALIGN_BOTTOMRIGHT);
layout.setStretchMinorAxis(false);
layout.setSpacing(5);
	

垂直上にFigureを追加・レイアウトはフィル

ToolbarLayout layout=new ToolbarLayout(false);
//layout.setMinorAlignment(ToolbarLayout.ALIGN_BOTTOMRIGHT);
layout.setStretchMinorAxis(true);
layout.setSpacing(0);

コード全文

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.draw2d.ToolbarLayout;
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 ToolbarLayoutTest {

    public ToolbarLayoutTest(Shell shell) {
        
		shell.setBounds(0,0,400,150);
		shell.setLayout(new FillLayout(SWT.VERTICAL));
		
		FigureCanvas canvas = new FigureCanvas(shell);
		Panel panel=new Panel();
		panel.setBackgroundColor(ColorConstants.orange);
		canvas.setContents(panel);
		
		
		
		ToolbarLayout layout=new ToolbarLayout(false);
		//layout.setMinorAlignment(ToolbarLayout.ALIGN_BOTTOMRIGHT);
		layout.setStretchMinorAxis(true);
		layout.setSpacing(0);
		
		
		panel.setLayoutManager(layout);
		
		for(int i=0;i<4;i++){
		    set(panel,"label "+i);
		}
		
		panel.revalidate();
    }
    public void set(Figure parent,String label){
        Label labelFigure=new Label(label);
        labelFigure.setBorder(new LineBorder());
        parent.add(labelFigure);
    }
    
	public static void main(String[] args) {
		Display display=new Display();
		Shell shell=new Shell(display);
		
		
		ToolbarLayoutTest app=new ToolbarLayoutTest(shell);
		
		
		shell.open();
		
		
		while(!shell.isDisposed()){			
			if (!display.readAndDispatch ()){
					display.sleep ();
				  }
		}
		display.dispose();
	}
}

このエントリーを含むはてなブックマーク このエントリーを含むECナビ人気ニュース