标签‘java’

Java GUI编程中有关swing组件的阻塞

Swing API的设计目标是强大、灵活和易用。特别地,我们希望能让程序员们方便地建立新的Swing组件,不论是从头开始还是通过扩展我们所提供的一些组件。
出于这个目的,我们不要求Swing组件支持多线程访问。相反,我们向组件发送请求并在单一线程中执行请求。

单线程规则:Swing线程在同一时刻仅能被一个线程所访问。一般来说,这个线程是事件派发线程(event-dispatching thread)。
规则的例外:有些操作保证是线程安全的。
事件分发:如果你需要从事件处理(event-handling)或绘制代码以外的地方访问UI,那么你可以使用SwingUtilities类的invokeLater()或invokeAndWait()方法。
创建线程:如果你需要创建一个线程--比如用来处理一些耗费大量计算能力或受I/O能力限制的工作--你可以使用一个线程工具类如SwingWorker或Timer。 查看更多...

Java多线程中线程阻塞机制

为了解决对共享存储区的访问冲突,Java 引入了同步机制,现在让我们来考察多个线程对共享资源的访问,显然同步机制已经不够了,因为在任意时刻所要求的资源不一定已经准备好了被访问,反过来,同一时刻准备好了的资源也可能不止一个。为了解决这种情况下的访问控制问题,Java 引入了对阻塞机制的支持。

阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪),学过操作系统的同学对它一定已经很熟悉了。Java 提供了大量方法来支持阻塞,下面让我们逐一分析。

1. sleep() 方法:sleep() 允许 指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态。 查看更多...

多项目相互依赖的Java程序打包并引入外部Jar包方式

近期给项目的某些功能加了个J2SE的小工具,主要是用Swing编写的,写好之后需要打包jar,但是出现了丢包的错误,确切的说是打包不完全,因为所引用的jar不是在一个项目中,而是几个项目相互依赖的情况下且各个项目还有相应的第三方包,公司内部还限网,几经周折,今天总算解决了。

使用的是eclipse,ibm rtc封装的,貌似是3.X版,最初试过将依赖包全部复制到主函数所在项目再打包,发现还是不能实现,也使用了Fatjar,但似乎并不好用。料想大家平时用Fatjar都是引入第三方包而已,于是尝试了将主程序所依赖的两个项目先打包后再导包,然后打包,依然不行。因为eclipse不支持同时导出外部jar包。

下面说下最终实现的打包方式,按照eclipse常规的打包功能: 查看更多...

盘点常见的几种程序员怪癖

打算走上程序员的道路了,却逐渐发现自己身上很多怪癖,晚上无聊搜了下关于程序员的怪癖,发现还有人做了总结。有网友博文这样写:做了n年的程序员,也和各种形形色色的程序员合作了n年,回顾总结,发现不管程序员性格是外向的还是内向的,是多话的还是沉默寡言的,他们或多或少都有怪癖,区别只在于怪癖的严重程度。

盘点下来。我还真的占了不少。下面就是网友总结的,这里不再提链接了,因为也不知道具体谁总结的了。

1. 别人写的代码总是比自己差,我情愿重写也不要用别人的。这个现象不用多阐述,如果你是程序员,应该深有感悟。 查看更多...

java面试中常问到的集合类问题总结

Java集合框架是最常被问到的Java面试问题,要理解Java技术强大特性就有必要掌握集合框架。这里有一些实用问题,常在核心Java面试中问到。

1、什么是Java集合API

Java集合框架API是用来表示和操作集合的统一框架,它包含接口、实现类、以及帮助程序员完成一些编程的算法。简言之,API在上层完成以下几件事:

● 编程更加省力,提高城程序速度和代码质量

● 非关联的API提高互操作性 查看更多...

Hibernate中XML映射元素配置详解

对象关系的映射是用一个XML文档来说明的。映射文档可以使用工具来生成,如XDoclet,Middlegen和AndroMDA等。下面从一个映射的例子开始讲解映射元素,映射文件的代码如下。

组件应用的方法

组件有两种类型,即组件(component)和动态组件(dynamic-component)。 查看更多...

Rational Rose双向工程java代码生成与图生成

ROSE思想是复杂的,内涵是丰富的,操作是别扭的,文档是简单的,人性是没有的。然而人们对它趋之若鹜的原因恐怕是我们现在的TEAMLEADER,SA受RUP的'毒害'颇深的原因,而这也将影响到徒弟--将来的SA们。
基础操作
1.打开Rose

查看更多...

整合Spring与Hiberante3方法总结

最近做项目,第一次整合spring、hibernate、struts,这里收集点资料,做下参考。学j2ee的都知道,在Spring中整合Hibernate也算是需要掌握的基础知识了,整合的过程比整合Struts相对来说要简单许多,我们要实现的目标是整合,思路就是让spring容器来管理SessionFactory,这样就可以使用Spring的声明式事务了。

在 Spring 中配置 SessionFactory,可以利用Spring提供的 LocalSessionFactoryBean 工厂 Bean, 声明一个使用 XML 映射文件的 SessionFactory 实例。需要为该工厂 Bean 指定 configLocation 属性来加载 Hibernate 配置文件。例如:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="hibernate.cfg.xml"></property>
</bean>

这样就可以在Bean中注入SessionFactory了。 查看更多...

整合Spring与Struts1的三种方法总结

1.使用Spring 的 ActionSupport 。
2.使用Spring 的 DelegatingRequestProcessor 类。
3.全权委托。

无论用那种方法来整合第一步就是要为struts来装载spring的应用环境。 就是在 struts 中加入一个插件。struts-config.xml中

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"></set-property>
</plug-in>

spring 的配置文件被作为参数配置进来。这样可以省略对web.xml 文件中的配置。确保你的applicationContext.xml 在WEB-INF目录下面 查看更多...

新手学安卓开发必须知道的8个问题

1、我到底适合学习Android吗?
学习任何一门新的技术知识,需要的是兴趣 + 行动。只要你对Android产生了兴趣,愿意为其付出努力,我可以肯定的告诉你:你非常适合学习Android,不要再犹豫了!
2、Android的开发语言是什么?
Android开发主要是采用Java语言。一般的Android应用软件开发只需要使用Java就可以完成,如果涉及Android底层开发,需要用到Linux-C/C++,例如Android驱动开发。
3、学习Android需要具备什么样的条件?
除了兴趣外,你至少应该掌握Java基础知识。 查看更多...