仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 587|回复: 8
打印 上一主题 下一主题

[学习教程] 发布一篇Swing天生一个半通明的窗口

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:08:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......
要天生一个半通明的成形窗口,而又要制止利用当地的编码,惟有天真地使用screenshot(屏幕快照).
半通明窗口是公共对Swing最为渴求的特征之一.也能够称之为定形窗口,这类窗口有一部分是通明的,能够透过它看到桌面背景和别的的程序.假如欠亨过JNI(JavaNativeInterface当地接口)Java是没法为我们天生一个半通明的窗口的(即便我们能够那样做,还得当地操纵平台好撑持半通明窗谈锋行).但是这些近况没法制止我们对半通明窗口的渴求,经由过程一个我最喜好的手腕screenshot,我们能够棍骗性地完成这个目标.
仿制如许一个的半通明窗口的历程,次要的经由过程以下几点:
1.在窗口显现之前,先取得一个screenshot;
2.把上一步猎取的屏幕快照,作为窗口的背景图
3.调剂地位,以便于我们捕捉的screenshot和实践以后的屏幕完善分离,打造出一种半通明的假象.
方才说到的部分只是小儿科,重头戏在于,怎样在挪动或变更半通明窗口时,实时地更新screenshot,也就是实时更新半通明窗口的背景.
在入手下手我们的游览之前,师长教师成一个类,让它承继JPanel,我们用这个承继类来捕捉屏幕,并把捕捉的照片作为背景.类的详细代码以下例6-1
例6-1。半通明背景组件
publicclassTransparentBackgroundextendsJcomponent{
  privateJFrameframe;
  privateImagebackground;
publicTransparentBackground(JFrameframe){
  this.frame=frame;
  updateBackground();
}
/**
 *@todo猎取屏幕快照后当即更新窗口背景
 */
publicvoidupdateBackground(){
  try{
    Robotrbt=newRobot();
    Toolkittk=Toolkit.getDefaultToolkit();
    Dimensiondim=tk.getScreenSize();
    background=rbt.createScreenCapture(
    newRectangle(0,0,(int)dim.getWidth(),
             (int)dim.getHeight()));
  }catch(Exceptionex){
    //p(ex.toString());
//此办法没有声名过,由于没法得知高低文。由于不影响实行效果,先正文失落它
    ex.printStackTrace();
  }
}
publicvoidpaintComponent(Graphicsg){
  Pointpos=this.getLocationOnScreen();
  Pointoffset=newPoint(-pos.x,-pos.y);
  g.drawImage(background,offset.x,offset.y,null);
}
}
<p>
你总不能说你写框架吧,那无疑会加大工作量,现在大多企业采取的是折中的办法,就是改别人写好的框架,可要改框架,前提是你对这个框架足够的了解,这就更难了。
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-20 14:58:07 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
海妖 该用户已被删除
板凳
发表于 2015-1-27 18:53:23 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
不帅 该用户已被删除
地板
发表于 2015-2-1 10:06:47 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
简单生活 该用户已被删除
5#
发表于 2015-2-7 02:49:50 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
小魔女 该用户已被删除
6#
发表于 2015-2-19 21:28:54 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
冷月葬花魂 该用户已被删除
7#
发表于 2015-3-6 15:41:23 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
兰色精灵 该用户已被删除
8#
发表于 2015-3-13 03:48:06 | 只看该作者
是一种使用者不需花费很多时间学习的语言
因胸联盟 该用户已被删除
9#
发表于 2015-3-20 11:34:25 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-27 23:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表