JAVa

来源:互联网 发布:营销活动数据分析报告 编辑:程序博客网 时间:2024/04/30 18:39

其实在Eclipse上安装插件很简单,主要有两种方式:第一种就是在线安装插件;第二种就是,采取离线方式,也就是先将插件压缩包下载下来。推荐使用第二种,因为到时候你可以自己随时删除这个插件。

首先,此时此刻Eclipse是可以工作的状态,也即是打开了Eclipse。Google一下关于Java GUI插件,会发现比较多的插件,但是在这里推荐使用WindowBuilder插件,我记得,曾经WindowBuilder还不是免费的,昨天才发现这么好的东西竟然已经免费了,真是开发者的一大福利。Google搜索一下WindowBuilder这东西,第一就是了。如下图:


在上面图中,第一个结果是离线安装方式,也就是等下要说的,至于第二个搜索结果是在线安装方式。点击第一个链接,来到:


点击带下载图标的那个Download,

可以看到以下内容:

====================================================================================

Installing WindowBuilder Pro

All downloads are provided under the terms and conditions of the Eclipse Foundation Software User Agreementunless otherwise specified.

Develop Java graphical user interfaces in minutes for Swing, SWT, RCP and XWT with WindowBuilder Pro’s WYSIWYG, drag-and-drop interface. Use wizards, editors and intelligent layout assist to automatically generate clean Java code, with the visual design and source always in sync.

These instructions assume that you have already installed some flavor of Eclipse. If you have not, Eclipse can be downloaded from http://www.eclipse.org/downloads/. Instructions and system requirements for installing WindowBuilder can be found here.

Update Sites

Eclipse VersionRelease VersionIntegration Version Update SiteZipped Update SiteUpdate SiteZipped Update Site4.4 (Luna)  linklink (MD5 Hash)4.3 (Kepler)linklink (MD5 Hash)linklink (MD5 Hash)4.2 (Juno)linklink (MD5 Hash)linklink (MD5 Hash)3.8 (Juno)linklink (MD5 Hash)linklink (MD5 Hash)3.7 (Indigo)linklink (MD5 Hash)linklink (MD5 Hash)3.6 (Helios)linklink (MD5 Hash)  3.5 (Galileo)linklink (MD5 Hash)  3.4 (Ganymede)linklink (MD5 Hash)+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

根据你下载的Eclipse版本选择,应该下载那个。因为我使用的是Indigo(3.7),下载了这个对应的WindowBuilder插件,下载成功之后将其放到你的理想目录(一般也就放在Eclipse同目录下)。

第二,点击Eclipse中的Help,再次点击Install New Software,会出现:


点击Add,


在Name那一栏填写插件的名称,如WindowBuilder。再点击Archive,选择插件所在目录,之后就是:


点击Ok,后面的步骤没什么难度,就是点点鼠标而已。select all勾选,同意协议,一步一步的简单点击就可以了,安装成功后会要求重启Eclipse。

重启Eclipse后,也就是如何使用这个插件,进行简单的拖动方式,构建复杂的界面。其实如何使用这个插件在你下载的地方就有讲到如何使用这个插件。在这里:http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.wb.doc.user%2Fhtml%2Findex.html,讲到了很多的插件使用方法。

下面来看看如何使用WindowBuilder插件,


使用的方式也比较简单,Java GUI方面上的所有界面容器都在这了,有JFrame,还有JPanel等等。

使用之前,必须创建一个工程:

第一种方式就是直接利用我们熟悉的创建方式,直接New 一个Java Project。

第二种方式就是使用我们安装的插件,如上图中出现的,选取Swt/JFace Java Project。

现在工程也创建好了,这两种方式的不同也就是:第二种方式还会引用一些包而已,至于第一种方式更加普遍。

第一种方式:


工程创建好了,那么进入真正如何使用。

使用New〉〉Other〉〉


选择Swing Designer,(如果确实要选择SWT Designer也可以,只不过SWT Designer兼容性没有Swing Designer这么好,毕竟Swing Designer是针对Java使用的,它里面的控件都是JXXXX形式的,比如JText,而SWT Designer确实XXXX形式的,比如Text),所以,最好选择Swing Designer里面的组件。

可以选择Application Window,一般也就是应用窗口,所以选择这个。

下面的操作就像新建一个类一样。。



图1


     在WindowBuilder下可以直接建立工程,也可以建立单个的窗口。假设已经建立了工程,这里选择Swing Designer下的Application Window,点击Next >后,类似于新建类,在后续对话框中输入Name和Package,如图2所示。



图2


Finish后,即可得到HelloWorld.java。打开HelloWorld.java,可见其中已经预先生成了一些代码,是一个空白的窗体。点击代码窗口左下角新出现“Design"标签,可以使用WindowBuilder Editor可视化地查看窗体(也可以在HelloWorld.java上点击右键,选择Open With->WindowBuilder Editor),如图3所示。



图3


      WindowBuilder Eidtor的界面类似于VS等工具,能够可视化地对界面进行设计。点击Layouts下的Absolute layout,再点击窗体,使用绝对定位;点击Components下的JTextField,再点击窗体,添加一个文本框,修改其Variable属性为”txtName“;点击Components下的JButton,再点击窗体,添加一个按钮,修改其Variable属性为btnSubmit,修改其text属性为”Submit“;点击Components下的JLabel,再点击窗体,添加一个标签,修改其Variable属性为lblName,修改其text属性为”Name:“;同样方法再添加一个JLabel,修改其Variable属性为lblMessage,修改其text属性为”Please enter your name.“;调整界面尺寸,最终得到的界面如图4所示。



图4


 

这时点击左下角的”Source“标签回到代码编辑器,可以看到WindowBuilder生成的代码如下:

package text;
 
import java.awt.EventQueue;
 
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
 
public class HelloWorld {
 
    private JFrame frame;
    private JTextField txtName;
 
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    HelloWorld window = new HelloWorld();
                    window.frame.setVisible(true);
                }catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
 
    /**
     * Create the application.
     */
    public HelloWorld() {
        initialize();
    }
 
    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100,100,196,169);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
         
        txtName = new JTextField();
        txtName.setBounds(57,18,93,21);
        frame.getContentPane().add(txtName);
        txtName.setColumns(10);
         
        JButton btnSubmit = new JButton("Submit");
        btnSubmit.setBounds(57,46,93,23);
        frame.getContentPane().add(btnSubmit);
         
        JLabel lblName = new JLabel("Name:");
        lblName.setBounds(20,21,54,15);
        frame.getContentPane().add(lblName);
         
        JLabel lblMessage = new JLabel("Please enter your name.");
        lblMessage.setBounds(20,79,151,15);
        frame.getContentPane().add(lblMessage);
    }
 
}

  

如果在点击”Source“标签前选中了某个组件,则点击”Source“回到代码编辑器后,光标则会自动定位到对应的组件。

      再点击”Design“回到WindowBuilder Editor,双击Submit按钮,同大多数GUI开发工具类似,WindowBuilder认为此时要编写事件处理代码,界面自动切换到代码编辑器,且WindowBuilder已经在initialize()中完成了监听器的定义和注册:

btnSubmit.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {
    }
});

  

WindowBuilder使用匿名内部类的形式实现事件处理器。修改initialize()如下:

private void initialize() {
    frame = new JFrame();
    frame.setBounds(100,100,196,169);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(null);
         
    txtName = new JTextField();
    txtName.setBounds(57,18,93,21);
    frame.getContentPane().add(txtName);
    txtName.setColumns(10);
         
    final JLabel lblMessage = new JLabel("Please enter your name.");
    lblMessage.setBounds(20,79,151,15);
    frame.getContentPane().add(lblMessage);
         
    JButton btnSubmit = new JButton("Submit");
    btnSubmit.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            lblMessage.setText("Hello " + txtName.getText() + "!");
        }
    });
    btnSubmit.setBounds(57,46,93,23);
    frame.getContentPane().add(btnSubmit);
         
    JLabel lblName = new JLabel("Name:");
    lblName.setBounds(20,21,54,15);
    frame.getContentPane().add(lblName);
}               

  

这里将lblMessage的定义放在按钮btnSubmit之前,并定义为final(在匿名类内部使用外部定义的对象,则该对象必须为final),运行结果如图5所示。

 



 

图5

      WindowBuilder能够可视化地开发界面,并自动生成大部分代码,可以极大地方便JAVA GUI的设计和开发,但WindowBuilder完成的代码毕竟为机器自动生成,对于复杂的界面和事件处理,仍需要手动对代码进行整理。多数情况下,对WindowBuilder生成的代码进行移动后,WindowBuilder Editor仍能可视化地显示界面。
0 0