Chinaorg

          于千萬人之中,遇見你所遇見的人;于千萬年之中,時間的無涯荒野里,沒有早一步,也沒有晚一步,剛巧趕上了
          我不去想是否能夠成功,既然選擇了遠(yuǎn)方,便只顧風(fēng)雨兼程; 我不去想,身后會不會襲來寒風(fēng)冷雨,既然目標(biāo)是地平線,留給世界的只能是背影
          posts - 20, comments - 6, trackbacks - 0, articles - 0

          使用Eclipse的VE(Visual Editor)

          Posted on 2006-10-06 15:16 chinaorg 閱讀(1430) 評論(0)  編輯  收藏

          使用Eclipse的VE(Visual Editor)
          早就聽說Eclipse的鼎鼎大名,瀏覽了好多關(guān)于Eclipse的文章,聽說用SWT,JFace能設(shè)計(jì)出擁有本地操作系統(tǒng)界面風(fēng)格的東東,如果在XP上運(yùn)行,豈不是很讓客戶滿意,近期要做個桌面系統(tǒng),^_^....., 想Trying 下.
          用Eclipse當(dāng)然就要裝上再說,這兩天我是吃勁了苦頭..., 下載了很多東西,讀了很多文章,終于調(diào)通了,現(xiàn)在給大家分享下.我沒有找到完整的安裝攻略,現(xiàn)在就寫一個最新的.....? 建議您先瀏覽下Eclipse網(wǎng)站? http://www.eclipse.org? ;尤其是 Projects 連接, 其中的Eclipse Projiect, 和 Eclipse Tools Project.
          Eclipse (Eclipse SDK 最新的是3.0.2) 是一個平臺,其中的JDT,PDE都是集成在Eclipse下載的,SWT,JFace開發(fā)包也是,不用關(guān)心太多,有些文章說的很多,反而讓新手迷惑...

          Eclipse Tool Project 主要用到. Graphical Editor Framework (GEF) Project, EMF, VE?


          不要急于下載這些東東,我算是吃勁苦頭......


          用Eclipse當(dāng)然希望用它的可視化編程(Visual Edit Project) 插件. 現(xiàn)在最新的是 VE1.0.2.1下載頁 http://www.eclipse.org/vep/


          現(xiàn)看它的下載需求!!!!!? 原來VE只能和相應(yīng)版本的GEF,EMF,Eclipse SDK,一起工作,如果先前你下載了其他的高版本,都糟踐的,關(guān)鍵是耽誤自己的時間.


          好了,攻略開始.建個下載文件夾.


          下載VE(1.0.2.1)


          在同一個頁面的需求里下載 Eclipse SDK 3.0.1, EMF 2.0.1, GEF3.0.1


          解壓縮Eclipse SDK 3.0.1, 把解壓縮里的 eclipse 文件夾拷貝到D:\


          看看里邊的內(nèi)容,主要是plugins,features


          解壓縮 EMF 到\emf 文件夾, 把emf\plugins 的東西都拷貝到d:\eclipse\plugins, emf\features 下的東西拷貝到d:\eclipse\features


          VE,GEF 操作同上...


          重要的,Eclipse 3.0.1 需要 JDK1.4.2, 所以要先安裝它.JDK的路徑設(shè)置就不再說了.....\bin, \lib , \jdk1.4.2


          由于運(yùn)行SWT的程序用到本地庫,因此拷貝 D:\eclipse\plugins\org.eclipse.swt.win32_3.0.1\os\win32\x86 下的 *.dll 拷貝到 jdk路徑下的 \bin 目錄, 運(yùn)行程序可以自動找到.? 這些問題都困擾了我好長時間.


          現(xiàn)在啟動 d:\eclipse\eclipse.exe?


          ^_^^_^,都OK了


          eclipse 能自動認(rèn)出你的JRE.


          實(shí)戰(zhàn)!


          啟動eclipse,看看welcome project 吧,不錯... 界面很迷人!


          新建一個項(xiàng)目 file->New->project 出來項(xiàng)目向?qū)? 選擇Java project.? ->next 輸入project Name:Hello? Eclipse自動給你建個workspace 工作文件夾,你的項(xiàng)目都存在這里的,d:\eclipse\workspace? 點(diǎn)擊結(jié)束. 一個新項(xiàng)目建成了.


          添加SWT ToolKit, 菜單Project->Properties 選擇左側(cè)的 Java Build Path? 選擇 右側(cè)的 Libraries 標(biāo)簽頁, 點(diǎn)擊 Add Library 按鈕, 選擇 Standard Widget Toolkit(SWT)? 點(diǎn)擊 Next , 選上 Include support for JFace library? 結(jié)束.這樣就可以使用 SWT Jface控件了.


          選中你的project Hello. 選擇新建圖標(biāo)按鈕, 上端最左側(cè)的. 選擇 Visual Class ,點(diǎn)擊Next , Source Folder 是缺省的 project folder, package 填入 test, Name 填入 FrmHello? , 展開左側(cè)的 SWT 選擇 Shell, 勾選上 public static void main(String[] args), Constructors from superclass, Inherited abstract methods. 結(jié)束.


          Eclipse自動啟動 VE.... 看看那些窗口... 比較熟悉.. 出現(xiàn)了可視化編輯窗口.


          鼠標(biāo)移到右側(cè)的Palette(豎著的那個)把 一個Label,一個Button, 一個TextArea 放到shell上.


          選中Label, 在下側(cè)的Properties屬性欄可以進(jìn)行設(shè)置, >text 填入Hello World


          選中 Button 在下側(cè)的Properties屬性欄可以進(jìn)行設(shè)置, >text 填入Click Me.


          選中 Button 右鍵, events->Add Events . 選擇Mouse - MouseAdapter ->mouseDown.? 相應(yīng)的代碼自動產(chǎn)生.添加如下代碼(藍(lán)色部分)


          也可進(jìn)行其他的風(fēng)格設(shè)置, 但是如果JDK版本不對則不能操作.有錯...


          全部代碼:


          /*


          * Created on 2005-4-20


          *


          * TODO To change the template for this generated file go to


          * Window - Preferences - Java - Code Style - Code Templates


          */


          package test;


          ?


          import org.eclipse.swt.widgets.Label;


          import org.eclipse.swt.SWT;


          import org.eclipse.swt.widgets.Button;


          import org.eclipse.swt.widgets.Text;


          /**


          * @author w19284


          *


          * TODO To change the template for this generated type comment go to


          * Window - Preferences - Java - Code Style - Code Templates


          */


          public class FrmHello {


          ?


          private org.eclipse.swt.widgets.Shell sShell = null; // @jve:decl-index=0:visual-constraint="41,12"


          private Label label = null;


          private Button button = null;


          private Text textArea = null;


          /**


          *


          */


          public FrmHello() {


          super();


          // TODO Auto-generated constructor stub


          }


          ?


          public static void main(String[] args) {


          /* Before this is run, be sure to set up the following in the launch configuration


          * (Arguments->VM Arguments) for the correct SWT library path.


          * The following is a Windows example:


          * -Djava.library.path="installation_directory\plugins\org.eclipse.swt.win32_3.0.0\os\win32\x86"


          */


          org.eclipse.swt.widgets.Display display = org.eclipse.swt.widgets.Display.getDefault();


          FrmHello thisClass = new FrmHello();


          thisClass.createSShell() ;


          thisClass.sShell.open();


          ?


          while (!thisClass.sShell.isDisposed()) {


          if (!display.readAndDispatch()) display.sleep ();


          }


          display.dispose();


          }


          ?


          /**


          * This method initializes sShell


          */


          private void createSShell() {


          sShell = new org.eclipse.swt.widgets.Shell();


          label = new Label(sShell, SWT.NONE);


          button = new Button(sShell, SWT.NONE);


          textArea = new Text(sShell, SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);


          sShell.setText("Shell");


          sShell.setBackground(org.eclipse.swt.widgets.Display.getDefault().getSystemColor(org.eclipse.swt.SWT.COLOR_TITLE_BACKGROUND_GRADIENT));


          label.setBounds(new org.eclipse.swt.graphics.Rectangle(167,5,96,24));


          label.setText("Hello World");


          label.setBackground(org.eclipse.swt.widgets.Display.getDefault().getSystemColor(org.eclipse.swt.SWT.COLOR_INFO_BACKGROUND));


          label.setFont(new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getDefault(), "Times New Roman", 12, org.eclipse.swt.SWT.BOLD));


          button.setBounds(new org.eclipse.swt.graphics.Rectangle(152,34,123,24));


          button.setText("Click Me");


          button.setFont(new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getDefault(), "Times New Roman", 14, org.eclipse.swt.SWT.NORMAL));


          textArea.setBounds(new org.eclipse.swt.graphics.Rectangle(64,70,323,123));


          sShell.setSize(new org.eclipse.swt.graphics.Point(451,232));


          button.addMouseListener(new org.eclipse.swt.events.MouseAdapter() {


          public void mouseDown(org.eclipse.swt.events.MouseEvent e) {


          System.out.println("mouseDown()"); // TODO Auto-generated Event stub mouseDown()


          textArea.setText(textArea.getText() + "|Hello,Eclipse");


          }


          });


          }


          }


          好了,大功馬上告成.? 選擇運(yùn)行圖標(biāo), toolBar 上的綠色按鈕旁邊的黑下箭頭.選擇->run.., 選擇左側(cè)的java Application 點(diǎn)擊下面的新建.? 選擇中間Main標(biāo)簽頁, Project 選擇Hello , Main class: 選擇test.FrmHello.? 點(diǎn)擊 run 按鈕.


          界面出來了...., 以后你就可以直接點(diǎn)擊Run圖標(biāo),運(yùn)行這個程序.? 點(diǎn)擊Click Me 看看TextArea的變化...


          注意:關(guān)閉當(dāng)前窗體用dispose()就可以了,如果要退出程序,就用System.Exit(0),上面的代碼是SWT的


          以下是我自己的一些代碼:


          public void keyPressed(java.awt.event.KeyEvent e) {???


          ??????????????????? //KeyPress Events


          ??????????????????? FrmLogin frmlogin=new FrmLogin();


          ??????????????????? //以下設(shè)置模式窗口


          ??????????????????? //frmlogin.setModal( true);


          ??????????????????? //以下設(shè)置窗口位置


          ??????????????????? frmlogin.setLocation(300,100);


          ??????????????????? frmlogin.show();


          ??????????????????? //以下關(guān)閉當(dāng)前窗口


          ??????????????????? dispose();


          ??????????????????? System.out.print("KeyPressed");


          ???????????????????


          ??????????????? }


          上面的這段代碼是用來打開一個新窗口,同時關(guān)閉當(dāng)前窗口


          ?


          //申明一個JFrame


          ??????? FrmHello thisClass = new FrmHello();


          ??????? thisClass.setLocation(300,100);


          ??????? //初始化表結(jié)構(gòu)


          ??????? String[] columnName={"職員ID","職員名稱"};


          ??????? //設(shè)置列標(biāo)題(表頭)


          ??????? Vector cname=new Vector(2);


          ??????? cname.add(columnName[0]);


          ??????? cname.add(columnName[1]);


          ??????? //DefaultTableMode需要import javax.Swing.table.*;


          ??????? DefaultTableModel model=new DefaultTableModel(thisClass.srcdata,cname);


          ??????? thisClass.jTable.setModel(model);


          ??????? //以下是數(shù)據(jù)庫連接過程


          ??????? try


          ??????? {


          ??????????? //注冊驅(qū)動程序


          ??????????? Class.forName("com.microsoft.JDBC.sqlserver.SQLServerDriver");


          ??????????? //連接到SQL服務(wù)器


          ??????????? Connection conn = DriverManager.getConnection ("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=pubs","sa","hz0222");


          ??????????? //查詢表


          ??????????? Statement st;


          ??????????? st = conn.createStatement();


          ??????????? ResultSet rs = st.executeQuery("select * from employee");


          ??????????? //顯示數(shù)據(jù)集到JTable中


          ??????????? while (rs.next()) {


          ??????????????? Vector rowdata=new Vector(2);


          ??????????????? rowdata.add(rs.getString("emp_id"));


          ??????????????? rowdata.add(rs.getString("fname"));


          ??????????????? //將數(shù)據(jù)加入到容器,也就是加入到JTable 中


          ??????????????? thisClass.srcdata.add(rowdata);


          ??????????? }


          ??????????? //刷新JTable


          ??????????? thisClass.jTable.repaint() ;


          ??????????? thisClass.jTable .updateUI() ;


          ??????? }


          ??????? catch(ClassNotFoundException ex)


          ??????? {


          ??????????? System.err.print("ClassNotFound:"+ex.getMessage() );


          ??????? }


          ??????? catch(Exception ex1)


          ??????? {


          ??????????? System.err.print("GError:"+ex1.getMessage() );


          ??????? }


          ??????? thisClass.show() ;


          這段代碼是用來初始化連接數(shù)據(jù)庫(MSSQL)使用到了Jtable,Vector等


          以下是它的引用:


          //以下代碼是使用JDBC必需的


          import java.sql.Connection;


          import java.sql.DriverManager;


          import java.sql.ResultSet;


          import java.sql.Statement;


          //以下是使用Vector必需的


          import java.util.*;


          //以下是Swing類庫


          import javax.swing.JDialog;


          import javax.swing.table.*;


          import javax.swing.JTable;


          import javax.swing.JScrollPane;


          //以下引用是使用JOptionPane.showMessageDialog(jButton,


          ??????????????????????????? result,"Application Exit Now",1);


          必需的


          import javax.swing.JOptionPane;


          ?


          到此,終于知道在Eclipse中開發(fā)類似普通的Windows GUI應(yīng)用程序了(汗)


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 年辖:市辖区| 彰化市| 紫阳县| 师宗县| 谢通门县| 偃师市| 乌拉特中旗| 红原县| 布尔津县| 罗江县| 阿拉善左旗| 花垣县| 邮箱| 卫辉市| 成都市| 丁青县| 普陀区| 道孚县| 清水河县| 兖州市| 三门峡市| 马尔康县| 平昌县| 丰都县| 敖汉旗| 噶尔县| 林口县| 满城县| 祁东县| 新郑市| 赤城县| 大英县| 岱山县| 荆门市| 闸北区| 保山市| 游戏| 襄城县| 许昌县| 闻喜县| 安龙县|