WindowBuilder安装与简单使用

来源:互联网 发布:jdk 8u20 windows x64 编辑:程序博客网 时间:2024/06/05 08:19
由于emf,gef,ve,Eclipse可视化插件最多支持都eclectic3.2版本,现在使用受到了限制。
windowbuilder,也就是原来的SWT Designer。Google收购了Instantiations,把它的工具也重新免费发布了。
用过swt designer的人都知它是非常好用的swing/swt可视化开发工具,有了它,swing/swt也可以像visual studio一样拖拉控件写程序(虽然netbean也可以,不过没怎用),可惜是个收费产品,后来把改名为windowbuilder。不过Google把这个工具的开发公司Instantiations收购了,并把这个产品免费发布。Google收购Instantiations是为了给它的GWT设计开发工具,据说也是为了它的Anroid搞开发工具(......)。
安装地址:http://code.google.com/intl/zh-CN/webtoolkit/tools/download-wbpro.html
安装windowbuilder很方便,不过通过Eclipse的Update方式安装这个插件,eclipse的windowbuilder更新地址:
Eclipse 3.6 (Helios)
http://dl.google.com/eclipse/inst/d2wbpro/latest/3.6
Eclipse 3.5 (Galileo)
http://dl.google.com/eclipse/inst/d2wbpro/latest/3.5
Eclipse 3.4 (Ganymede)
http://dl.google.com/eclipse/inst/d2wbpro/latest/3.4

打开Eclipse,打开菜单Help→Install New Software,单击Work with后的Add按钮,输入与你Eclipse对应版本的更新地址,我的是3.5版本


单击确定后,就可以在列表中看到相关的安装文件。点击next一路安装下去。

安装完成后,重启Eclipse,点击File→New→Project...



新建JFrame






生成的代码也很干净

[java] view plaincopy
  1. package ustc;  
  2.   
  3. import java.awt.BorderLayout;  
  4. import java.awt.EventQueue;  
  5.   
  6. import javax.swing.JFrame;  
  7. import javax.swing.JPanel;  
  8. import javax.swing.border.EmptyBorder;  
  9. import javax.swing.JLabel;  
  10. import javax.swing.JTextField;  
  11. import javax.swing.JButton;  
  12. import java.awt.event.ActionListener;  
  13. import java.awt.event.ActionEvent;  
  14. import javax.swing.UIManager;  
  15. import javax.swing.SwingConstants;  
  16. import javax.swing.DropMode;  
  17.   
  18. public class DengLu extends JFrame {  
  19.   
  20.     private JPanel contentPane;  
  21.     private JTextField textField;  
  22.     private JTextField textField_1;  
  23.     private JTextField Note;  
  24.   
  25.     /** 
  26.      * Launch the application. 
  27.      */  
  28.     public static void main(String[] args) {  
  29.         EventQueue.invokeLater(new Runnable() {  
  30.             public void run() {  
  31.                 try {  
  32.                     DengLu frame = new DengLu();  
  33.                     frame.setVisible(true);  
  34.                 } catch (Exception e) {  
  35.                     e.printStackTrace();  
  36.                 }  
  37.             }  
  38.         });  
  39.     }  
  40.   
  41.     /** 
  42.      * Create the frame. 
  43.      */  
  44.     public DengLu() {  
  45.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  46.         setBounds(100100450327);  
  47.         contentPane = new JPanel();  
  48.         contentPane.setBorder(new EmptyBorder(5555));  
  49.         contentPane.setLayout(new BorderLayout(00));  
  50.         setContentPane(contentPane);  
  51.         contentPane.setLayout(null);  //这里设置为null了  
  52.   
  53.         JLabel label = new JLabel("\u7528\u6237\u540D");  
  54.         label.setBounds(79335415);  
  55.         contentPane.add(label);  
  56.   
  57.         textField = new JTextField();  
  58.         textField.setBounds(1433020621); //手动代码控制控件大小  
  59.         contentPane.add(textField);  
  60.         textField.setColumns(10);  
  61.   
  62.         JLabel label_1 = new JLabel("\u5BC6  \u7801");  
  63.         label_1.setBounds(79895415);  
  64.         contentPane.add(label_1);  
  65.   
  66.         textField_1 = new JTextField();  
  67.         textField_1.setBounds(1438620621);  
  68.         contentPane.add(textField_1);  
  69.         textField_1.setColumns(10);  
  70.   
  71.         JButton btnNe = new JButton("\u767B\u9646");  
  72.         btnNe.addActionListener(new ActionListener() {  
  73.             public void actionPerformed(ActionEvent e) {  
  74.                 if ( (textField.getText().equalsIgnoreCase("a")) && (textField_1.getText().equalsIgnoreCase("a"))){  
  75.                 //if ( (textField.getText() == "a") && (textField_1.getText() == "a"){      这个代码回出错,一直是否          
  76.                     textField.setText("");  
  77.                     textField_1.setText("");  
  78.                     Note.setText("欢迎登陆成功");  
  79.                 }else{  
  80.                     textField.setText("");  
  81.                     textField_1.setText("");  
  82.                     Note.setText("注意,用户名和密码都是a,不区分大小写。");  
  83.                 }  
  84.             }  
  85.         });  
  86.         btnNe.setBounds(1071559323);  
  87.         contentPane.add(btnNe);  
  88.   
  89.         JButton button_1 = new JButton("\u5173\u95ED");  
  90.         button_1.addActionListener(new ActionListener() {  
  91.             public void actionPerformed(ActionEvent arg0) {  
  92.                 textField.setText("");  
  93.                 textField_1.setText("");  
  94.                 Note.setText("关闭窗口");  
  95.             }  
  96.         });  
  97.         button_1.setBounds(2431559323);  
  98.         contentPane.add(button_1);  
  99.           
  100.         Note = new JTextField();  
  101.         Note.setToolTipText("Welcome");  
  102.         Note.setHorizontalAlignment(SwingConstants.LEFT);  
  103.         contentPane.add(Note, BorderLayout.SOUTH);  
  104.         //Note.setBounds(143, 86, 206, 21);  
  105.         Note.setBounds(5720033050);  
  106.         //Note.setColumns(10);  
  107.     }  
  108.   
  109. }  

参考资料:

http://www.blogjava.net/pengo/archive/2010/09/19/332482.html



原创粉丝点击