Chinaorg

于千万人之中,遇见你所遇见的人;于千万年之中,时间的无涯荒野里,没有早一步,也没有晚一步,刚巧赶上了
我不去想是否能够成功,既然选择了远方,便只顾风雨兼程; 我不去想,身后会不会袭来寒风冷雨,既然目标是地平线,留给世界的只能是背影
posts - 20, comments - 6, trackbacks - 0, articles - 0

使用Eclipse的VE(Visual Editor)

Posted on 2006-10-06 15:16 chinaorg 阅读(1421) 评论(0)  编辑  收藏

使用Eclipse的VE(Visual Editor)
早就听说Eclipse的鼎鼎大名,浏览了好多关于Eclipse的文章,听说用SWT,JFace能设计出拥有本地操作系统界面风格的东东,如果在XP上运行,岂不是很让客户满意,近期要做个桌面系统,^_^....., 想Trying 下.
用Eclipse当然就要装上再说,这两天我是吃劲了苦头..., 下载了很多东西,读了很多文章,终于调通了,现在给大家分享下.我没有找到完整的安装攻略,现在就写一个最新的.....  建议您先浏览下Eclipse网站  http://www.eclipse.org  ;尤其是 Projects 连接, 其中的Eclipse Projiect, 和 Eclipse Tools Project.
Eclipse (Eclipse SDK 最新的是3.0.2) 是一个平台,其中的JDT,PDE都是集成在Eclipse下载的,SWT,JFace开发包也是,不用关心太多,有些文章说的很多,反而让新手迷惑...

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


不要急于下载这些东东,我算是吃劲苦头......


用Eclipse当然希望用它的可视化编程(Visual Edit Project) 插件. 现在最新的是 VE1.0.2.1下载页 http://www.eclipse.org/vep/


现看它的下载需求!!!!!  原来VE只能和相应版本的GEF,EMF,Eclipse SDK,一起工作,如果先前你下载了其他的高版本,都糟践的,关键是耽误自己的时间.


好了,攻略开始.建个下载文件夹.


下载VE(1.0.2.1)


在同一个页面的需求里下载 Eclipse SDK 3.0.1, EMF 2.0.1, GEF3.0.1


解压缩Eclipse SDK 3.0.1, 把解压缩里的 eclipse 文件夹拷贝到D:\


看看里边的内容,主要是plugins,features


解压缩 EMF 到\emf 文件夹, 把emf\plugins 的东西都拷贝到d:\eclipse\plugins, emf\features 下的东西拷贝到d:\eclipse\features


VE,GEF 操作同上...


重要的,Eclipse 3.0.1 需要 JDK1.4.2, 所以要先安装它.JDK的路径设置就不再说了.....\bin, \lib , \jdk1.4.2


由于运行SWT的程序用到本地库,因此拷贝 D:\eclipse\plugins\org.eclipse.swt.win32_3.0.1\os\win32\x86 下的 *.dll 拷贝到 jdk路径下的 \bin 目录, 运行程序可以自动找到.  这些问题都困扰了我好长时间.


现在启动 d:\eclipse\eclipse.exe 


^_^^_^,都OK了


eclipse 能自动认出你的JRE.


实战!


启动eclipse,看看welcome project 吧,不错... 界面很迷人!


新建一个项目 file->New->project 出来项目向导, 选择Java project.  ->next 输入project Name:Hello  Eclipse自动给你建个workspace 工作文件夹,你的项目都存在这里的,d:\eclipse\workspace  点击结束. 一个新项目建成了.


添加SWT ToolKit, 菜单Project->Properties 选择左侧的 Java Build Path  选择 右侧的 Libraries 标签页, 点击 Add Library 按钮, 选择 Standard Widget Toolkit(SWT)  点击 Next , 选上 Include support for JFace library  结束.这样就可以使用 SWT Jface控件了.


选中你的project Hello. 选择新建图标按钮, 上端最左侧的. 选择 Visual Class ,点击Next , Source Folder 是缺省的 project folder, package 填入 test, Name 填入 FrmHello  , 展开左侧的 SWT 选择 Shell, 勾选上 public static void main(String[] args), Constructors from superclass, Inherited abstract methods. 结束.


Eclipse自动启动 VE.... 看看那些窗口... 比较熟悉.. 出现了可视化编辑窗口.


鼠标移到右侧的Palette(竖着的那个)把 一个Label,一个Button, 一个TextArea 放到shell上.


选中Label, 在下侧的Properties属性栏可以进行设置, >text 填入Hello World


选中 Button 在下侧的Properties属性栏可以进行设置, >text 填入Click Me.


选中 Button 右键, events->Add Events . 选择Mouse - MouseAdapter ->mouseDown.  相应的代码自动产生.添加如下代码(蓝色部分)


也可进行其他的风格设置, 但是如果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");


}


});


}


}


好了,大功马上告成.  选择运行图标, toolBar 上的绿色按钮旁边的黑下箭头.选择->run.., 选择左侧的java Application 点击下面的新建.  选择中间Main标签页, Project 选择Hello , Main class: 选择test.FrmHello.  点击 run 按钮.


界面出来了...., 以后你就可以直接点击Run图标,运行这个程序.  点击Click Me 看看TextArea的变化...


注意:关闭当前窗体用dispose()就可以了,如果要退出程序,就用System.Exit(0),上面的代码是SWT的


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


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


                    //KeyPress Events


                    FrmLogin frmlogin=new FrmLogin();


                    //以下设置模式窗口


                    //frmlogin.setModal( true);


                    //以下设置窗口位置


                    frmlogin.setLocation(300,100);


                    frmlogin.show();


                    //以下关闭当前窗口


                    dispose();


                    System.out.print("KeyPressed");


                   


                }


上面的这段代码是用来打开一个新窗口,同时关闭当前窗口


 


//申明一个JFrame


        FrmHello thisClass = new FrmHello();


        thisClass.setLocation(300,100);


        //初始化表结构


        String[] columnName={"职员ID","职员名称"};


        //设置列标题(表头)


        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);


        //以下是数据库连接过程


        try


        {


            //注册驱动程序


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


            //连接到SQL服务器


            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");


            //显示数据集到JTable中


            while (rs.next()) {


                Vector rowdata=new Vector(2);


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


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


                //将数据加入到容器,也就是加入到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() ;


这段代码是用来初始化连接数据库(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中开发类似普通的Windows GUI应用程序了(汗)


只有注册用户登录后才能发表评论。


网站导航: