DANCE WITH JAVA

          開發出高質量的系統

          常用鏈接

          統計

          積分與排名

          好友之家

          最新評論

          Swt/Jface listviewer的實現

          前邊將過了TableViewer和TreeViewer再來看ListViewer就簡單了,操作步驟一樣,但更簡單。這里只給出使用的代碼
          一、代碼,這個實現不同于前邊是分開實現(都是public 的類),這里給出的是內部類的實現方式。
          import java.util.ArrayList;
          import java.util.List;

          import org.eclipse.jface.viewers.IStructuredContentProvider;
          import org.eclipse.jface.viewers.LabelProvider;
          import org.eclipse.jface.viewers.ListViewer;
          import org.eclipse.jface.viewers.Viewer;
          import org.eclipse.swt.SWT;
          import org.eclipse.swt.graphics.Image;
          import org.eclipse.swt.layout.FillLayout;
          import org.eclipse.swt.widgets.Display;
          import org.eclipse.swt.widgets.Shell;


          public class TestListViewer {

              
          static class ListLabelProvider extends LabelProvider {
                  
          public String getText(Object element) {
                      Country country 
          = (Country)element;
                      
          return country.getName();
                  }

                  
          public Image getImage(Object element) {
                      
          return null;
                  }

              }

              
          static class ContentProvider implements IStructuredContentProvider {
                  
          public Object[] getElements(Object inputElement) {
                      
          if(inputElement instanceof List){
                          List list 
          = (List)inputElement;
                          
          return list.toArray();
                      }

                      
          return new Object[0];
                  }

                  
          public void dispose() {
                  }

                  
          public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
                  }

              }

              
          static class Country {
                  
          private String name;

                  
          public Country(){
                  }

                  
          public Country(String name){
                      
          this.name = name;
                  }

                  
          public String getName() {
                      
          return name;
                  }


                  
          public void setName(String name) {
                      
          this.name = name;
                  }

                  
          public static List getCountryList(){
                      List list 
          = new ArrayList();
                      list.add(
          new Country("中國"));
                      list.add(
          new Country("美國"));
                      list.add(
          new Country("日本"));
                      
          return list;
                  }

                  
              }

              
          private static org.eclipse.swt.widgets.List list;
              
          /**
               * Launch the application
               * 
          @param args
               
          */

              
          public static void main(String[] args) {
                  
          final Display display = Display.getDefault();
                  
          final Shell shell = new Shell();
                  shell.setSize(
          500375);
                  shell.setText(
          "SWT Application");
                  
          //
                  
                  shell.open();

                  
          final ListViewer listViewer = new ListViewer(shell, SWT.BORDER);
                  listViewer.setLabelProvider(
          new ListLabelProvider());
                  listViewer.setContentProvider(
          new ContentProvider());
                  listViewer.setInput(
          new Object());
                  list 
          = listViewer.getList();
                  list.setBounds(
          12263100100);
                  
                  listViewer.setContentProvider(
          new ContentProvider());
                  listViewer.setLabelProvider(
          new ListLabelProvider());
                  listViewer.setInput(Country.getCountryList());
                  
          //可以直接添加
                  listViewer.add(new Country("英國"));
                  shell.setLayout(
          new FillLayout());
                  shell.layout();
                  
          while (!shell.isDisposed()) {
                      
          if (!display.readAndDispatch())
                          display.sleep();
                  }

              }


          }


          二、注意代碼的注釋部分,可以直接添加和移除。

          posted on 2007-08-06 14:26 dreamstone 閱讀(5293) 評論(0)  編輯  收藏 所屬分類: SWT和插件開發

          主站蜘蛛池模板: 乐山市| 邯郸县| 孝义市| 绥芬河市| 丰城市| 越西县| 胶州市| 景洪市| 长岭县| 新野县| 桐梓县| 通榆县| 漳平市| 青岛市| 郧西县| 龙游县| 丰城市| 旌德县| 桐城市| 正镶白旗| 浦城县| 营口市| 崇文区| 江川县| 湖北省| 辽阳市| 宝鸡市| 伊川县| 枣强县| 黄梅县| 星座| 泸州市| 溧水县| 吴川市| 阿拉善右旗| 玛纳斯县| 井冈山市| 中阳县| 鹤壁市| 云安县| 奎屯市|