|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。
在浏览J2SE平台最新刊行版的加强功效时,您会当即注重到Sun终极仍是听取了我们的倡议。我并非要表示之前他们基本不听我们的倡议,但他们好象把注重力更多地放在增加年夜范围的API上,而不是修补那些已投进利用几年的API上。比方AWTFrame类。固然Sun在版本1.2中增加了经由过程编程将Frame图标化的功效,您仍旧没法埋没Titlebar或将Frame最年夜化。固然您可使用Window来避开Titlebar,但一些义务请求的是一个顶级的Frame而不是窗口。基础上不会呈现幸运的情形。
如今,利用1.4刊行版,您能够经由过程编程埋没特定于平台的窗口润色,如Titlebar,并将Frame最年夜化。这两种功效都是早在1997年就被初次提出的。无润色Frame撑持的发生是因为在1997年春季,Sun的毛病数据库纪录了相干毛病,毛病标识号为4038769,Frame缩放撑持在1997年8月被提出,毛病标识号为4071554。我将在本文中申明怎样利用这两种功效。
无润色的Frame
利用这两种功效的最复杂的地方是撑持无润色Frame。要埋没Frame上的Titlebar,必要将指定Frame的undecorated属性设为true。缺省情形下,该值为false,当Frame显现出来后,您就没法变动此设置(假如您实验变动的话,体系会抛出一个IllegalComponentStateException非常)。
清单1.创立一个无润色的Frame
Frameframe=newFrame();
frame.setUndecorated(true);
因为Titlebar和别的的窗口润色如今都已被埋没,您没法依托底层窗口办理体系供应对拖曳Frame的撑持。您必需本人用一对鼠标侦听器来增加该撑持。
清单2.增加拖曳撑持
//AvoidcreatingapointwitheachmousePressed()call
Pointorigin=newPoint();
frame.addMouseListener(newMouseAdapter(){
publicvoidmousePressed(MouseEvente){
origin.x=e.getX();
origin.y=e.getY();
}
});
frame.addMouseMotionListener(newMouseMotionAdapter(){
publicvoidmouseDragged(MouseEvente){
Pointp=frame.getLocation();
frame.setLocation(
p.x+e.getX()-origin.x,
p.y+e.getY()-origin.y);
}
});
<p>
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net网页编程并驾齐驱的 |
|