您的位置:首页 > 产品设计 > UI/UE

Jbuilder2007如何打开Jbuilder2006的GUI项目程序?

2008-04-14 19:22 176 查看
我遇到过的问题,请教csdn 社区、Java学习的朋友 ,现在总结一下情况。初学Java,有误之处,请大家指出。

有一个书本上的Java示范程序,是用Jbuider2006写的,带有GUI的。如下面的图1、图2。

图1 login程序的代码




图2 login程序的GUI设计




如何在Jbuilder2007中打开Jbuilder2006的老项目呢?Jbuilder2007使用了Eclipse内核,在管理项目文件上与Jbuilder2006有很多不同。

1.ant打开

下载了ant1.7,在Jbuilder2006配置好了ant。(什么是ant,请搜索相关文章)

在原本的项目上,点击菜单栏“New->Ant->Export to Ant 然后右键点生成的结点选rebuild.会生成ant脚本.”。在Jbuilder2007中用“从现有的Ant 文件构建java项目”打开。打开成功。如图3.
图3



2.

又或者Jbuilder2007有一个“[新建]->[项目]->[Legacy Jbuilder]->[ Java Project from Existing Jbuilder .jpx Project]->”这样也可以打开旧的Jbuilder项目。效果同上面一样。打开成功。如图3。

Jbuilder2007使用了Eclipse内核,Eclipse开发GUI使用第三方插件,主要的有Visual Editor for Java;WindowBuilder Pro;jigloo。

图4 示范程序运行的情况



图5 在示例程序上,鼠标右键,选择[打开方式]->[可视化编辑器],打开Visual Editor for Java插件编辑器

VE转换示例程序代码的情况不好



图6 用WindowBuilder Pro 6.4.0 for Eclipse3.2插件转换的情况,
似乎效果比VE好很多,但也不是很好



图7 用jigloo 4.04插件转换的情况,效果较好



VE插件在功能上,还不如WindowBuilder Pro 、jigloo 好用。建议使用Eclipse设计GUI时,不要使用VE插件,

而使用WindowBuilder Pro 或者jigloo。

插件WindowBuilder Pro 与jigloo 代码转换比较

下面是一个示例代码,在文本编辑器中,手动写的GUI。没有用任何插件“画出”。


import java.awt.*;


import java.awt.event.*;




public class TestChoice implements ItemListener, ActionListener




...{


TextField name;




CheckboxGroup cg;




Choice career;




List city;




Checkbox[] favorite;




public static void main(String args[])




...{


new TestChoice().createUI();


}




public void createUI()




...{


Frame f = new Frame("注册窗口");


Panel p = new Panel();


p.setLayout(new FlowLayout(FlowLayout.LEFT, 1, 1));




name = new TextField(10);


cg = new CheckboxGroup();


Checkbox sex1 = new Checkbox("男", cg, false);


Checkbox sex2 = new Checkbox("女", cg, false);


Panel sp = new Panel();


sp.add(sex1);


sp.add(sex2);


career = new Choice();


career.add("IT技术人员");


career.add("工商管理");


career.add("教育");


career.add("金融");


city = new List(4, false);


city.add("北京");


city.add("上海");


city.add("天津");


city.add("广州");


city.add("太原");


city.add("石家庄");


city.add("哈尔滨");


city.add("三亚");


city.add("威海");




p.add(new Label("姓名:"));


p.add(name);


p.add(new Label("性别:"));


p.add(sp);


p.add(new Label("职业:"));


p.add(career);


p.add(new Label("城市:"));


p.add(city);


p.add(new Label("爱好:"));






String[] sf = ...{ "旅游", "读书", "时装", "汽车", "健美" };


favorite = new Checkbox[sf.length];


for (int i = 0; i < sf.length; i++)




...{


favorite[i] = new Checkbox(sf[i]);


favorite[i].addItemListener(this);


p.add(favorite[i]);


}


f.add(p, "Center");




Panel psouth = new Panel();


psouth.setLayout(new GridLayout(1, 2));


Button submit = new Button("提交");


Button reset = new Button("退出");


submit.addActionListener(this);


reset.addActionListener(new ActionListener()




...{


public void actionPerformed(ActionEvent e)




...{


System.exit(0);


}


});


psouth.add(submit);


psouth.add(reset);


f.add(psouth, "South");


f.addWindowListener(new WindowAdapter()




...{


public void windowClosing(WindowEvent e)




...{


System.exit(0);


}


});


f.setSize(160, 270);


f.setLocation(300, 100);


f.setVisible(true);


}




public void itemStateChanged(ItemEvent e)




...{


String s = e.getItem().toString();


if (e.getStateChange() == ItemEvent.SELECTED)




...{


System.out.println("您刚选中了项目:" + s);


} else




...{


System.out.println("您刚取消了项目:" + s);


}


}




public void actionPerformed(ActionEvent e)




...{


if (e.getActionCommand().equals("提交"))




...{


String info = "您提交的信息如下:姓名:" + name.getText() + " 性别:"


+ cg.getSelectedCheckbox().getLabel() + " 职业:"


+ career.getSelectedItem() + " 城市:"


+ city.getSelectedItem() + " 爱好:";


for (Checkbox f : favorite)




...{


info += f.getState() ? (f.getLabel() + ". ") : "";


}


System.out.println(info);


}


}


}

图8 示范程序运行的效果





图9 用WindowBuilder Pro 6.4.0 for Eclipse3.2插件转换的情况



图10 用jigloo 4.04插件转换的情况



结论:原本这个带GUI的示例程序是用jbuilder2006写的,在jbuilder2007安装 好jigloo,使用jigloo转换代码效果比 较好。
如果不是用jbuilder2006写的(如何后面的那个示范程序),WindowBuilder Pro不一定输给jigloo。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: