`
- 浏览:
134985 次
- 性别:
- 来自:
杭州
-
利用Swing渲染,Swing应用程序绘制了在显示器上出现的用户界面。主要包括在事件、绘制 、渲染、双缓冲、线程。
事件:Swing接收和处理事件的方式是理解线程如何在Swing内部交互及理解应用程序如何与Swing和AWT事件交互的关键。在Java中,事件可以来自本地系统,如一个可见的窗体或键盘输入。也可也是Java本身,如应用程序产生的请求。所有的时间都是放在一个事件队列中的,Java.awt.EventQueue负责取出事件并来派发事件,它的机制是一个单独的线程管理,叫做事件派发线程。
绘制:Swing中的绘制是应用程序用来更新显示的过程,它也是由事件队列所受的影响来影响Swin组件的paint()和paintComponent()来绘制。是通过Swing或AWT库自身发起一个绘制请求,或应用程序代码发起这样子的一个请求。在这样子的情况下发起的请求,应用程序代码知道,基于一些内部状态的改变,显示也应该改变。
组件中发起绘制方法的主要分为两类:异步请求和同步请求。
异步绘制请求的工作原理 告诉Swing需要更新内容,让Swing处理了编排这些请求的细节,并适当的组合这些请求。所有的异步请求都是repaint()得变体,它也可以分为两类:整个组件的更新<Component.repaint()>和指定区域的更新<Component.repaint(int x,int y,int width,int height)>。
repaint()的底层告诉Swing必须更新整个组件区域。如果这个组件是一个容器,后续的paint()方法的调用还会导致每个子组件更新自身。重绘请求可以说是合并,例如,请求一个重绘,而在对垒中已经有一个还没有运行过的重绘请求,那么第二个请求将被忽略,因为已经由最早的那个请求执行了。
第二个方法和repaint()一样,只是重新绘制一个组件的部分区域
一个简单的repaint()等同于repait(0,0,getWedth(),getHeight()).
同步绘制请求:在处理同步绘制时必须小心处理,它必须在事件派发线程中进行,并且代码必须在正确的线程中以便正确的时间发生,如果不是正确的线程,结果也会不对。
它也有两个方法几个方法,
JComponet.paintImmediately(int x, int y,int w, int h) 和 JComponent.parintImmediately(Rectangle r)
这两个方法是相同的,都是指定需要更新的区域。要强制一个组件内容同步绘画,paintImmediately()是唯一需要的方法。用它来告诉组件指定区域更新,内部是调用适当的paint();有几个缺点是不止必须在派发事件线程中,还得立刻执行paint(),所以意味着它是没有合并绘画请求的。
还有一个是夜是Compont.paint(Graphics),正常发展情况下是不会调用的paint()的。但是在特定的情况下会调用,例如当要把一个组件渲染到一个图像,而不是它在Swing窗口中通常的位置。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Java异常处理机制<br>第8章 Java反射机制<br>第9章 数据结构与集合类<br>第3篇 图形用户界面<br>第10章 Java Swing(上)<br>第11章 Java Swing(下)<br>第12章 Applet网页小程序<br>第13章 图形编程<br>第14章 ...
类型基本操作<br>2. 面向对象的操作 适配器模式 单列模式 工程模式 组合模式。。。<br>3. 精确计算数字和随机数字<br>4. java.util.package高级使用 List Set collection..<br>5. String高级操作 包括密码的使用 ...
<br>一:开发环境介绍 <br> 开发语言 JAVA<br> 开发工具 JBulider 2006<br> 数据库 SQL SERVER 2000<br> 运行环境 JDK 1.4以上.<br> 操作系统 Windows 2000/xp/2003 <br>Windows Vista /Linux Unix/Mac等操作...
Java远程消息传送器<br><br>功能要求:<br><br>桌面窗口应用程序;<br><br>包括多个发送端和一个接收端;...<br><br> <br><br>技术要点:<br><br>Socket/TCP/IO/Thread/AWT/SWING<br>开发环境:idea
一大堆java基础类的小例子<br>java.applet [8 examples] <br>java.awt [78 examples] <br>java.awt.datatransfer [3 examples] <br>java.awt.dnd [3 examples] <br>java.awt.event [8 examples] <br>java.awt.font ...
涉及 JAVA GUI Socket 且对JAVA的swing组件进行了扩展使用<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>注:语音聊天部分还未完成,还需要些时间:)<br><br><br><br>1.运行服务器端需要你的机器上...
<br>帖上来,给有相同想法的人,也给swing初学者。<br>上班,没多少时间写,但我会不断实现一些功能,把这JDic词典完善。<br>更希望有人能一起实现,所以我把工程包给传上来了。<br>其中也有打好包的windows,linux...
<br><br><br>译者序<br>前言<br>第1章 多线程<br>第2章 集合<br>第3章 网络<br>第4章 数据库编程<br>第5章 分布式对象<br>第6章 高级Swing<br>第7章 高级AWT<br>第8章 JavaBean构件<br>第9章 安全<br>第10章 国际化...
<br><br><br>译者序<br>前言<br>第1章 多线程<br>第2章 集合<br>第3章 网络<br>第4章 数据库编程<br>第5章 分布式对象<br>第6章 高级Swing<br>第7章 高级AWT<br>第8章 JavaBean构件<br>第9章 安全<br>第10章 国际化...
<br><br><br>译者序<br>前言<br>第1章 多线程<br>第2章 集合<br>第3章 网络<br>第4章 数据库编程<br>第5章 分布式对象<br>第6章 高级Swing<br>第7章 高级AWT<br>第8章 JavaBean构件<br>第9章 安全<br>第10章 国际化...
Readme - SwingLabs SwingX Project - http://swingx.dev.java.net<br><br><br>SwingX is a library of components and utilities extending the Java Swing library; read more at our website, <br>...
限制可输入的最大长度<br>JTreeComboBox 带有树形结构的下拉列表<br>com.sunking.swing.print.* <br>注意:<br>一个打印模板<br>最近发现有人在用OPENSWING的时候,把package及author等信息全部删除了. 请这部份人及时...
security to Swing.<br>Cay Horstmann identifies the problems experienced Java platform<br>developers encounter most often, and delivers insightful, expert-level<br>guidance for addressing them-...
观察者模式 Observer:Swing中的事件模型<br>工厂模式 Factory:在JDK中遍地都是,比如JDBC、JNDI等,是学习Spring的基础<br>命令模式 Command:Struts框架的基石<br>单例模式 Singleton:最简单的设计模式,大量...
接口<br>5.Swing事件处理<br>6.实现了类似QQ的滑动菜单<br>7.程序读取画面<br><br>运用到的东西我就不再说了。压缩包中有全套的说明文档(包括需求说明,详细设计说明,数据库设计文档,用户手册)。数据库也在包里....
<name>org.eclipse.jdt.core.javabuilder</name> <arguments> </arguments> </buildCommand> </buildSpec> <natures> <nature>org.eclipse.jdt.core.javanature</nature> </natures> </projectDescription>
<br>有以下十种风格可以设置:<br>javax.swing.UIManager.setLookAndFeel("com.jtattoo.plaf.smart.SmartLookAndFeel");<br>javax.swing.UIManager.setLookAndFeel("com.jtattoo.plaf.mcwin.McWinLookAndFeel");<br>...
它的名字的灵感来源于我喜欢的一首歌小幸运,在这里把"它"献给所有仍在Swing奋斗的朋友。 功能介绍 窗体使用半透明阴影边框 解决透明窗体字体渲染问题 扁平化界面 ...
<br>3.eRedPMIS开发环境<br>操作系统:WinXP <br>JDK:1.6+ <br>开发工具:NetBeans 6.0(M9) <br>数据库:Access[不限]<br>4.eRedPMIS终极目标<br>封装出一个支持Swing桌面编程的基础平台或者说是提供一个能满足商业...