由于很久没用java写过界面了,一开始的版本其实特别难看,只能实现功能,这是完全不能给用户使用的。于是就在网上找相关的工具,最后发现一款插件挺好用的,jigloo
下面先说一下jigloo的安装方法
一种方法是直接解压,把features和plugins文件夹复制到eclipse下对应的文件夹下,重启eclipse
二是http://mmdev.iteye.com/blog/1807042,参考这个链接
配置完成后启动eclipse
应该会出现以下的界面

然后就可以新建一个JFrame类
建完后界面如下

将布局layout设置为AbsoluteLayout后,就可以在上面设置不同的组件了
注意下图的小黑色三角,点击后可以看到自动生成的代码,只需要在相应的位置加上对应的函数就可以了

下面是一些图片



关于jigloo在附件中可以下载。程序打包时,推荐另外一个插件fat jarhttp://zzcjobstudy.iteye.com/admin/blogs/1965385。在这样的界面中插入背景的方法可以参见我的另一篇文章http://zzcjobstudy.iteye.com/admin/blogs/1961914
以及以下代码
public class MainFrame extends javax.swing.JFrame { /** * */ private static final long serialVersionUID = 1L; private JLabel label_background; private Icon icon; private JLabel label_title; private JLabel label_history_check; private JLabel label_basic_info; private JLabel label_inte_any; private JLabel label_out_record; /** * Auto-generated main method to display this JFrame */ public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { MainFrame inst = new MainFrame(); inst.setLocationRelativeTo(null); inst.setVisible(true); } }); } public MainFrame() { super(); initGUI(); } private void initGUI() { try { icon=new ImageIcon(getClass().getResource("/bg.jpg")); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); getContentPane().setLayout(null); { label_title = new JLabel(); getContentPane().add(label_title); label_title.setText("\u9152\u6c34\u7ba1\u7406\u7cfb\u7edf"); label_title.setBounds(176, 12, 190, 38); label_title.setFont(new java.awt.Font("楷体",1,26)); } { label_inte_any = new JLabel(); label_inte_any.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub super.mouseClicked(e); new ExtenalAny().setVisible(true); } }); getContentPane().add(label_inte_any); label_inte_any.setText("\u667a\u80fd\u5206\u6790"); label_inte_any.setBounds(215, 130, 72, 48); label_inte_any.setFont(new java.awt.Font("楷体",3,16)); } { label_out_record = new JLabel(); label_out_record.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub super.mouseClicked(e); new OutRecord().setVisible(true); } }); getContentPane().add(label_out_record); label_out_record.setText("\u51fa\u8d27\u7cfb\u7edf"); label_out_record.setBounds(79, 208, 73, 55); label_out_record.setFont(new java.awt.Font("楷体",3,16)); } { label_basic_info = new JLabel(); label_basic_info.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub super.mouseClicked(e); new BasicInfo().setVisible(true); } }); getContentPane().add(label_basic_info); label_basic_info.setBounds(52, 89, 82, 53); } { label_history_check = new JLabel(); label_history_check.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub new HistoryCheck().setVisible(true); } }); getContentPane().add(label_history_check); label_history_check.setBounds(215, 244, 82, 55); } { label_background = new JLabel(icon); label_background.setOpaque(true); getContentPane().add(label_background); label_background.setBounds(0, -12, 539, 417); }//设置背景图片的,这个一定要放在最后,要不会把其他控件掩盖 pack(); this.setSize(555, 399); } catch (Exception e) { //add your error handling code here e.printStackTrace(); } } }