SWT Tips and Samples 基礎編 > ScrolledComposite |
|
ScrolledCompositeScrolledCompositeは、任意のウィジェットにスクロールバーを作るクラスです。スクロールバーを表示するには、下の例のようにウィジェットのインスタンス生成時にScrolledCompositeを親ウィジェットとして渡します。さらにそのウィジェットをScrolledCompositeのsetContent()メソッドに渡します。つまり、ウィジェットとScrolledCompositeの間で相互参照が行われている形になります。 Shell shell = new Shell(...); ScrolledComposite sc = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL); Composite c = new Composite(sc, SWT.NONE | ...); ... sc.setContent(c); sc.setMinSize(400,400); sc.setExpandHorizontal(true); sc.setExpandVertical(true); スクリーンショット10 x 10 のボタンを格子状に配置したサンプルプログラムです。通常のCompositeに100個のボタンを配置し、それをScrolledCompositeの上に載せているという構造です。このボタンを載せたCompositeの表示エリアのサイズが、400 x 400のサイズよりも小さくなるとスクロールバーが表示されるという仕組みになっています。 ソースコード (ScrolledComposite.java)import org.eclipse.swt.SWT; import org.eclipse.swt.custom.ScrolledComposite; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; public class ScrolledCompositeTest { public static void main(String[] args) { new ScrolledCompositeTest(); } public ScrolledCompositeTest() { Display display = new Display(); Shell shell = new Shell(display); shell.setText("ScrolledComposite"); shell.setLayout(new FillLayout()); ScrolledComposite sc = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL); Composite c = new Composite(sc, SWT.NONE); c.setLayout(new GridLayout(10, true)); GridData gd = new GridData(); //10x10の格子状にボタンを配置 for (int i=0; i<100; i++){ Button b = new Button(c, SWT.PUSH); b.setText(Integer.toString(i)); gd = new GridData(GridData.FILL_BOTH); gd.heightHint = 30; gd.widthHint = 30; b.setLayoutData(gd); } sc.setContent(c); sc.setMinSize(400,400); sc.setExpandHorizontal(true); sc.setExpandVertical(true); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } } 最新更新日: 2004年8月16日 |
- PR -
【Sony】大手他社よりも安い!ビジネス向け光・100Mしかも固定IP付!今なら更に初期費用最大15,000円OFF!
オフィス用品・オフィス家具 価 格 交 渉 可!
|
||||
|
|||||
Copyright(C) 2003,2004 Jasmin Project. All Right Reserved. |
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||