1.因为我用的eclipse是3.1.2版本,所以首先下载对应的3个插件emf-sdo-xsd-SDK-2.1.2.zip,GEF-ALL-3.1.1.zip,VE-SDK-1.1.0.1.zip(注意这里一定要对应的使用!)
2.将这3个插件对应的解压
3.这样打开eclipse你就会发现新建那里多了Visual Class
4.接下来配置SWT.由于运行SWT的程序用到本地库.然后发现D:/eclipse/plugins/下有个org.eclipse.swt.win32.win32.x86_3.1.2.jar,将里面的DLL文件解压出来,放到D:/JAVA/BIN/文件夹下
5.启动eclipse,添加SWT ToolKit, 菜单Project->Properties 选择左侧的 Java Build Path 选择 右侧的 Libraries 标签页, 点击 Add Library 按钮, 选择 Standard Widget Toolkit(SWT) 点击 Next , 选上 Include support for JFace library 结束.这样就可以使用 SWT/Jface控件了.
实战开始:(摘录)
新建一个项目 file->New->project 出来项目向导, 选择java project. ->next 输入project Name:Hello Eclipse自动给你建个workspace 工作文件夹,你的项目都存在这里的,d:/eclipse/workspace 点击结束. 一个新项目建成了.
选中你的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应用程序了(汗)
选中你的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应用程序了(汗)