hengheng123456789

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            297 Posts :: 68 Stories :: 144 Comments :: 0 Trackbacks
          樹(Tree類)應用實例如下:

          1、簡單樹
          ?public static void main (String [] args) {
          ??Display display = new Display ();
          ??Shell shell = new Shell (display);
          ??shell.setLayout(new FillLayout());
          ??
          ??final Tree tree = new Tree (shell, SWT.BORDER);
          ??
          ??for (int i=0; i<4; i++) {
          ???TreeItem iItem = new TreeItem (tree, 0);
          ???iItem.setText ("TreeItem (0) -" + i);
          ???for (int j=0; j<4; j++) {
          ????TreeItem jItem = new TreeItem (iItem, 0);
          ????jItem.setText ("TreeItem (1) -" + j);
          ????for (int k=0; k<4; k++) {
          ?????TreeItem kItem = new TreeItem (jItem, 0);
          ?????kItem.setText ("TreeItem (2) -" + k);
          ?????for (int l=0; l<4; l++) {
          ??????TreeItem lItem = new TreeItem (kItem, 0);
          ??????lItem.setText ("TreeItem (3) -" + l);
          ?????}
          ????}
          ???}
          ??}
          ??shell.setSize (200, 200);
          ??shell.open ();
          ??while (!shell.isDisposed()) {
          ???if (!display.readAndDispatch ()) display.sleep ();
          ??}
          ??display.dispose ();
          ?}

          2、類似資源管理器的樹,其中包含鼠標雙擊事件
          ?public static void main (String [] args) {
          ??final Display display = new Display ();
          ??final Shell shell = new Shell (display);
          ??shell.setText ("Lazy Tree");
          ??shell.setLayout (new FillLayout ());
          ??
          ??final Tree tree = new Tree (shell, SWT.BORDER);
          ??File [] roots = File.listRoots ();
          ??for (int i=0; i<roots.length; i++) {
          ???TreeItem root = new TreeItem (tree, 0);
          ???root.setText (roots [i].toString ());
          ???root.setData (roots [i]);//保存當前節點數據
          ???new TreeItem (root, 0);//把當前節點作為目錄節點
          ??}
          ??
          ??tree.addListener (SWT.Expand, new Listener () {
          ???public void handleEvent (final Event event) {
          ????final TreeItem root = (TreeItem) event.item;
          ????TreeItem [] items = root.getItems ();
          ????for (int i= 0; i<items.length; i++) {
          ?????if (items [i].getData () != null) return;
          ?????items [i].dispose ();
          ????}
          ????File file = (File) root.getData ();
          ????File [] files = file.listFiles ();
          ????if (files == null) return;
          ????for (int i= 0; i<files.length; i++) {
          ?????TreeItem item = new TreeItem (root, 0);
          ?????item.setText (files [i].getName ());
          ?????item.setData (files [i]);
          ?????if (files [i].isDirectory()) {
          ??????new TreeItem (item, 0);
          ?????}
          ????}
          ???}
          ??});
          ????tree.addListener (SWT.MouseDoubleClick, new Listener () {
          ???public void handleEvent (Event event) {
          ????Point point = new Point (event.x, event.y);
          ????TreeItem item = tree.getItem (point);
          ????if (item != null) {
          ?????System.out.println ("Mouse down: " + item);
          ????}
          ???}
          ??});
          ??//根據Tree的大小更改shell的大小
          ??Point size = tree.computeSize (300, SWT.DEFAULT);
          ??int width = Math.max (300, size.x);
          ??int height = Math.max (300, size.y);
          ??shell.setSize (shell.computeSize (width, height));
          ??shell.open ();
          ??while (!shell.isDisposed ()) {
          ???if (!display.readAndDispatch ()) display.sleep ();
          ??}
          ??display.dispose ();
          ?}
          posted on 2006-11-02 17:31 哼哼 閱讀(5986) 評論(0)  編輯  收藏 所屬分類: SWT
          主站蜘蛛池模板: 景洪市| 鸡西市| 南川市| 合川市| 宁波市| 抚宁县| 丰顺县| 莆田市| 左贡县| 陕西省| 同仁县| 名山县| 尼勒克县| 凉城县| 磐安县| 西平县| 耒阳市| 龙山县| 岳阳县| 新密市| 长海县| 额敏县| 北碚区| 正镶白旗| 固阳县| 文昌市| 北宁市| 濮阳市| 阿勒泰市| 龙岩市| 桂东县| 西乡县| 新沂市| 吉安市| 金堂县| 陆丰市| 成都市| 扶绥县| 洛隆县| 盐源县| 梓潼县|