`
netbaixc_gmail_com
  • 浏览: 55510 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
单例模式的实现需要考虑的因素有很多。对于常常出现的Double-checked实现单例模式实际上是不安全的实现: private static Singleton INSTANCE; public static Singleton getInstance(){ if(INSTANCE==null){ synchronized(Singelton.class){ //Dou ...
JAVA Painting-Swing实现纪要四 前三节大概描述了swing的绘制实现,现在补充一下Swing里十分重要的一个绘制概念:revalidate。 按Swing的想法,将开发java界面的开发人员分为两类:首先是开发独立的组件,这些组件与具体应用无关,Swing自身也提供了一套,开发者也可以开发自己的组件,这些人是组件开发者角色;然后是为某应用程序构建GUI,则是使用那些组件类建立组件实例,并且通过建立容器关系来实现界面需求,这些是GUI开发者角色。从这个清晰的划分出发可以体会Swing面向OO开发的精神。组件开发者开发的每一个组件面向所有应用,是一个高度抽象,打包封装好的类,因此高 ...
JAVA Painting-Swing实现纪要三 前两节实现了Swing的绘制机制,即在整个GUI应用中所有的绘制时机是怎么产生的,时机产生后又怎么样经过swing框架的基础处理最终进入合适组件开展具体paint。那么每个组件在得到绘制时机时,如何进行绘制?这就从计算机显示世界的历史开始说起了。 在很久很久以前老一辈革命家是通过INT10直接向显示区内存书写显示字节数据,显示芯片会将这些数据按频率生成模拟信号提供显示器进行显示。此后发生了很多方面的进化,一方面是语言上有了c,c++,所以我们不再直接int10,而是调用其API函数;另一方面是绘制的各个方面被封装化,不再直接画点像素,而是逐渐抽象 ...
JAVA Painting-Swing实现纪要二 然后继续< JAVA Painting-Swing实现纪要一>by netbaixc。 纪要一已经分析了swing paint机制的一个大概的轮廓。这里将主要分析RepatinManager是如何维护绘制请求,又如何执行绘制的。 Componet类提供了几个重载repaint, public void repaint(); public void repaint(long tm); public void repaint(int x, int y, int width, int height); JComponent类提供了一个重载 ...
首先推荐<Painting in AWT and Swing>by Amy Fowler。 Sun在JDK 1.0最初发布了图形API包,代号AWT (abstract windowing toolkit),里面除对GUI基本支持(如结合各OS的事件分发机制等)外,自有一套重量级开发GUI的思路,并提供了一组常规使用的重 ...
GC,Reference,Finalize,Dispose Java提供了垃圾对象自动回收(GC)机制,该机制对堆heap里的对象就其被引用情况进行跟踪判断,对合适对象进行自动回收释放内存。按java规范,对象分如下引用情况: An object is strongly reachable if it can be reache ...
Jre1.7对输入法的支持使得java开发者能够方便地使用JAVA编写输入法,并整合适配了本地输入法,然后提供出一个在所有输入法中切换的菜单界面,并在以后的编辑文本过程中实现了一个高效的事件处理框架,最终实现了方便地利用输入法进行输入的用户体验。 一.编写Java输入法及切换输入法支持。 利用JAVA编写输入法只需实现两个核心接口:InputMethod,InputMethodDescriptor,然后将jar包放在jre/lib/ext下即可被检测到;本地系统输入法虽然可能安装多个(比如流行的谷歌输入法,紫光拼音输入法),但通过InputMethodAdapter只适配为一个输入法;各个j ...
Jre1.7鼠标事件以MouseEvent类封装。共有如下8种: /**      *The"mouseclicked"event.This<code>MouseEvent</code>      *occurswhenamousebuttonispressedandreleased.      */     publicstaticfinalintMOUSE_CLICKED = MOUSE_FIRST;     /**      *The"mousepressed"event.This<code>Mous ...
特别注意:按java给出的Focus实现规范,jre1.7保证实现如下几点: 1.       Focus_Gained,Focus_Lost事件的序列。即如果在EDT中,应用程序查询currentFocusOwner,=A,此后=B,则中间一定按顺序收到A Lost,B Gain.这主要通过DefaultKeyboardFocusMan ...
1.       在Jre1.7版本中,KeyboardFocusManager,DefaultKeyboardFocusManager这两个类,与Component, WComponentPeer类一起完成了focus的主要逻辑实现。 DefaultKeyboardFocusManager是前者的系统默认实现。其单例注册在appcontext中,如果需要,程序员可以替 ...
窗口系统一般包含一个桌面GUI+若干应用程序GUI。每个GUI都由组件构成,每个组件都可以获得focus,获得focus的组件将获得之后的键盘事件,而任意时刻只有一个组件能获得focus。这个设计适用在当前所有的窗口系统,而跨各种系统 ...
Java dnd拖拽实现分析纪要 既有的Swing组件都内置了拖拽的支持,是怎么样支持呢? 首先,在Windows环境的jvm进程中,一个gui程序将启动两个线程:AWT-WINDOWS(AWT)和Event-Dispatch-Thread(EDT)。AWT-WINDOWS线程不断从windows操作系统中获取GUI事件并进行初步的底层处理;其中一些事件会被包装成高级的AWTEvent置入一个地方,而EDT线程的处理过程就包括不断在的适当时机从这个地方获取这些AWTEvent并进行高级处理。 然后,拖拽的效果就是由以下几个GUI操作事件及相应程序处理完成的。 1.       拖拽开始, ...
Global site tag (gtag.js) - Google Analytics