Java界面程序技术

2024-10-06

Java界面程序技术(共8篇)

Java界面程序技术 篇1

Java程序可以在平台上迅速传播, Java语言很容易被反编码。Java程序混淆也就是在不改变原义的情况下, 对Java程序程序进行混淆, 混淆后的程序很难被反编码, 或者发编码后的程序可读性非常差, 就可以达到保护软件的目的。Java程序混淆技术被广泛地用于软件知识产权领域。

1 Java程序混淆技术的原理

混淆技术[1]实际上就是代码变换技术, 通过变换, 将原始程序P变换为新的程序P1, 它们的功能相似或者相近, 代码安全性非常高。

如果原始程序P, 经过混淆变换T, 变换为新的程序P1, 也就是P1=T (P) , 这个软件混淆变化必须满足以下条件:如果P结束, 那么P1也必须结束, 并且输出结果与P相同;如果P无法结束, 或者以错误状态结束, 那么P1不一定结束;对于P和P1的计算任务, P1比P消耗的时间长, 而且保持在一个特定的范围内;攻击者如果想要将P1恢复成P, 那么所需要消耗的时间远远大于将P转换为P1的时间。

2 Java程序混淆技术的分类

2.1 数据混淆

数据混淆[2]是指对程序的组成元素, 如常量、变量和数据结构进行混淆变换, 增大攻击者反编码的难度。

1) 分裂和合并变量混淆:分裂变量混淆指的是在保持程序原义的前提下, 将一些比较简单的数据结构和数据类型分解成一些变量的组合, 就可以达到隐藏原始程序的效果。

合并变量混淆指的是将几个数值变量或者整型数据合并成一个变量或数据, 从而达到隐藏原始数据的目的。

2) 数组重构混淆:数组是程序中的基本数据结构, 对数组进行重构混淆, 包括数组分裂变换、数组合并变换、数组平滑变换以及数组折叠变换。数组分裂变换指的是将一个数组分裂成两个或者两个以上的数组;数组合并变换是指将两个或两个以上的数组合并为一个数组;数组平滑变换是指减少数组的维数;数组折叠变换是指增加数组的维数。

3) 将静态数据转换为与程序相关的数据:静态数据, 特别是字符串数据, 包含大量信息。通过混淆变换, 可以将静态数据转换为一个函数或者一段子程序, 在执行程序的时候, 可以通过程序调用生成相应的字符串, 从而增加程序的复杂程度。

2.2 词法混淆

词法混淆是变换函数和变量的名称, 违背Java见名知义的软件原则。词法混淆是根据Java虚拟机规范中的类文件结构的有关规定, 混淆常量池中存储的类、字段、方法以及变量等名称的“CONSTANT_Utf8_info”类型数据。词法混淆主要有三种方法:用名称相同但是类型不同的字段进行替换;有意义的标识符用没有任何意义的字符来替换;用Java虚拟机不限制但是Java语言禁止的字符或者字符串来代替原始的字符或者字符串。词法变化具有单向性, 不需要额外的执行代价, 所以程序的复杂几乎不受影响, 在实践中应用比较广泛。

词法混淆还包括移除和改名。移除是指将程序中的注释、调试信息等格式化信息删除掉, 这种方法具有单向性, 一旦混淆无法恢复, 操作简单, 但是强度很差。改名是指将程序中的常量名、变量名等标识符改为没有意义的标识符。

2.3 控制混淆

1) 循环条件插入变换:通过不透明谓词把一个循环的终止条件变得更加复杂。

2) 分支插入变换:对于一串语句, 加入一个控制条件, 增加程序的复杂程度。可以加一个不透明谓词, 构造一个不会执行的分支, 或者另两个分支上的语句都和原语句相同, 从而影响后面语句的执行。

3) 将可制约的控制流转换为不可制约的控制流:利用不透明谓词, 加入一个假分支, 将一个循环变换为多个循环, 增加控制流图的翻译难度。

4) 并行化代码:并行程序比串行程序更复杂, 难以被分析。使用并行技术, 可以构造不透明谓词, 混淆程序的控制流。可以将串行程序并行化, 还可以在程序中添加代码, 增加程序的理解难度。

5) 控制顺序混淆:一般情况下, Java类文件包含了很多控制信息, 对这些控制转换信息进行掩藏可以通过打乱表达式、方法的顺序, 增加程序的理解难度。

2.4 类结构混淆

1) 类合并:类合并[3]指的是将两个或两个以上的类合并成一个类, 包括各个类所包含的变量和函数, 从而破坏系统的类, 隐藏系统的整体设计。根据重命名的变量和方法, 如果合并的类中有相同标识符的函数和变量, 那么就将它们改为不重复的变量或函数;如果合并的类中, 构造函数的标识符和参数都是相同的, 那么就增加一个伪造的参数;如果合并的两个类之间存在着继承的关系, 那么为了区分标识符相同的函数, 可以增加一个布尔型的私有变量。

2) 类分裂:类分裂指的是将一个类C拆分成C1和C2两个类, 并且C2是C1的子类。另外还要保证C中的变量和方法, 由C1继承或者由C2包含。

3) 类型隐藏:

在Java中, 除了类之外, 还有接口, 接口也是一种类型。通过接口, 可以声明待混淆类的变量和方法, 从而实现类型的隐藏。另外, 如果引入的所有接口只服务于一个类, 那么很容易被识别, 为了使自动分析变得困难, 可以使引入的接口同时为几个类服务。

3 Java程序混淆技术的算法

1) 滥用标识符混淆算法:滥用标识符混淆算法[4]是指用同一个标识符代替一个类中出现的所有标识符, 主要是通过Java中标识符中的重命名来实现的。

2) 重载无关联方法算法:重载无关联方法算法与扩展转换和方法重载有很大的关系。这种方法是将被混淆类中的所有实体用相同的标识符来重命名。在Java程序中, 如果某个编译时刻通过了一个象征性的参考, 那么混淆操作一定会被执行, 如果用这种方法对已操作程序反编译, 并重新执行, 就会改变程序的代码。

3) 非法标识符替换算法:非法标识符替换算法[5]是将程序中的普通标识符用关键词和非法字符结合的字符串或者纯粹的关键词来代替。这种混淆算法, 很容易迷惑大多数的反编译软件。

4) 重写静态方法算法:重写静态方法算法可以处理一些被编译过的Java类。它的混淆变化非常细微, 很难被察觉, 从而增加了攻击者的难度。

4 Java程序混淆技术的应用

1) 保护DRM技术。DRM技术的安全性和关键数据的保护有很大的关系, 采用Java程序混淆技术, 可以保护DRM技术的关键数据信息。

2) 保护算法。如果开发者想要将一个新算法应用到软件中的时候, 可以通过代码混淆技术混淆算法的一部分, 从而增加算法的理解难度, 达到保护算法的目的。

3) 代码抗篡改。当进行网络软件操作或者执行相关任务的时候, 代码的安全是相当重要的。软件设计者可以采用Java程序混淆技术保护操作软件, 防止外来用户或者恶意主机篡改代码。

4) 病毒变种。杀毒技术的重要方法就是模式匹配。对于病毒码, 如果采用混淆技术, 那么就可以产生很多不同特征的病毒变种, 威胁到网络安全。

5 结束语

Java程序混淆技术在不改变程序功能的基础上, 增加攻击者对程序反编译的难度, 提高软件知识产权的保护力度, 因此混淆技术在代码保护方面, 应用非常广泛。今后的混淆技术不仅要加大混淆力度, 提高防篡改力度, 还要考虑混淆算法的运行负担。

参考文献

[1]王建民, 余志伟, 王朝坤, 等.Java程序混淆技术综述[J].计算机学报, 2011, 34 (9) :105-108.

[2]霍建雷.用于Java软件保护的代码混淆技术研究与实现[D].西安:西北大学, 2009.

[3]郭玉杰.面向Java的代码混淆技术的研究[D].苏州:江苏大学, 2010.

[4]李新良, 罗戈夕.基于Java的代码混淆算法研究[J].湖南文理学院学报:自然科学版, 2010, 22 (3) :58-62.

[5]霍建雷, 范训礼, 房鼎益.标识符重命名混淆算法及其实现[J].计算机工程, 2010, 36 (1) :99-103.

Java界面程序技术 篇2

成都java技术培训机构哪家好?转行Java程序员应该具备哪些知识

成都国信安java培训由副教学总监,优秀讲师带队并亲自授课,秉承成都国信安一贯的专业品质态度,在课程质量,学生素质,就业服务上相当严格要求,并以学业满意就业为目标,打造国内优秀java培训班,感兴趣的同学不妨关注国信安教育基地了解一下吧。

为什么越来越多的90后偏爱互联网行业呢?他们的择业观与80后有哪些区别呢?

在公司内部,90后更偏爱自由开放的企业文化。从调查结果来看,有73%的受访者赞同“开放自由、相对宽松”是最理想的企业文化,仅有13%的受访者可以接受“严格守序、集体高于个人的传统企业文化”。在追求自由的风格影响下,大部分90后都明确表示反感办公室八卦和职场潜规则。

每一代人都有自己的择业观——70后追求稳定“铁饭碗”;80后奉行实用主义,看重职业发展;而90后爱高薪更爱自由。波士顿咨询公司的最新分析报告显示,2014年互联网行业在中国直接创造了170万个就业机会。随着行业的进一步发展,预计2020年有望直接为约350万人带来就业机会。短短几年间,蓬勃发展的互联网公司已经成为深受90后青睐的就业选择。很多90后之所以热衷在互联网企业就业,与行业广阔的发展空间、人性化的管理风格以及诱人的薪酬福利有着密切关系。

四川是旅游的天堂,无法拒绝她火辣辣的美食,无法拒绝她惊艳的自然风光,更无法拒绝她的古蜀文化。初中毕业学啥技术好?相信这是2017年中考过后大多数成绩不理想同学们思考的问题。的确,2017初中毕业没考上高中怎么办?在家啃老还是外出打工?年纪那么小,未来又该何去何从呢?>事实证明,绝大多数成绩一般的初中毕业生头脑相当聪明,他们只是不适应当前应试教育的题海战术,与其强迫他们继续死读书,不如转换思路,选择成功捷径——学技术。职业院校相比普通高中,可以提早选择实用专业,进入职业岗位,从而实现人生价值。

一说起IT培训,很多人都表示苦不堪言,总有人被虚假信息坑过。很多人表示自己对其一窍不通,实在不知道怎么办才好。别着急,让小编为你奉上这些必备小技巧,带你快速简单的上手。接下来小编为你整理了超实用的干货~想了解IT培训的,快来看,绝对超实用哦!国信安教育基地

近年来我国信息化发展越来越快,使得全国各地的信息化建设如火如荼,出现了大量的信息化人才尤其是Java软件人才的缺口,而我国信息化人才培养还处于发展阶段,导致社会实际需求人才基数远远大于信息化人才的培养基数,使得数以万计的中小企业急需全面系统掌握Java软件开发基础技能与知识的软件工程师。

同时,Java工程师的薪水相对较高.通常来说,具有3~5年开发经验的工程师,拥有年薪10万元是很正常的一个薪酬水平.但是,对Java人才需求旺盛的IT企业却很难招聘到合格的Java人员.其中,根本的原因就是许多计算机专业的毕业生在读期间没有掌握实用的技能与经验,距离企业的实际用人需求有较大的差距.因此,计算机专业的大学生欲成为Java工程师,便捷的一条路就是参加以实战项目为主要教学方法的Java职业技能培训,从而有效地缩短同企业具体用人需求之间的差距.那么想要成为一名优秀的Java程序员自身应该具备哪些知识。面向对象的知识:

Java是一个面向对象的开发语言,因此熟悉面向对象对学习Java很有必要,您要了解:什么是对象,什么是类;什么是封装,什么是多态,什么是继承;什么是抽象类,什么是接口。了解了概念后,您还需要这些概念是如何体现的,如类和对象有什么区别?类是如何封装的? Java语法:

如果您有C++等面向对象语言的开发经验,您只需简单的翻看一下介绍Java的相关书籍就可以了。如果您是新手,没有关系,您下些工夫,好好研究一本Java初级教程之类的书就可以了。国信安教育基地

JSP和HTML:

做Java程序员都少不了和JSP以及HTML打交道。因此,想成为Java程序员就不可避免的要熟悉JSP和HTML,您最好能知道JSP的几个内置对象,如Session,Request,Reponse,以及常用的JSP标签,如include,userBean等。如果您再熟悉一下JS和CSS就更好了,那会使您制作的页面更友好。WebServer:

熟悉了以上三种,可以肯定的说您已经可以制作出来JSP页面了,您也可以在您的页面里使用自己开发的了,但您的页面总要跑起来才能看到您要的效果,这就要求您必须熟悉一种WebServer,比如:TOMCAT,RESIN等。您要熟悉如何发布您的应用,如何利用WebServer的数据库资源等。开发工具:

大家都知道,开发工具可以帮助您更好更快地开发,因此熟悉几种开发工具很有必要。目前Java的开发工具比较流行的有JBuilder,IDEA,Eclipse,HTML的开发工具有Dreamweaver等。熟悉一种框架:

熟悉一种框架其实是成为Java程序员的一种可选知识,但目前开发B/S结构的应用的开发小组,都差不多会采用一种框架来构建自己的应用系统。框架都会有许多可重用的代码,良好的层次关系和业务控制逻辑,基于框架的开发使你可以省出很多的开发成本。目前比较流行的框架有Struts和Spring等。成都国信安Java培训班由10年以上软件项目开发经验的资深软件工程师、项目经理以及数据库管理经验的资深专家担任授课,讲课风趣有味,知识面面俱到,通过4个月的课程学习,可以全方位的掌握开发Java大型软件项目过程中所需要的软件技术、设计规范、开发流程、质量控制及项目管理,以及Oracle数据库相关知识内容。

Java界面程序技术 篇3

关键词:数据库;Java;JDBC;连接池

中图分类号:TP311.13文献标识码:A文章编号:1007-9599 (2013) 06-0000-02

目前各种各样的软件信息技术都逐渐的融入到了生活中,为社会发展和人们生活做出了极大的贡献。其中Java语言程序的开发和应用,在社会中都有着很大的突破,它不但打破了传统语言程序的模式,还要有效的对其信息技术进行了有效的发展。因此在进行Java程序数据访问时候,要从各方面入手,从而达到信息的最大化。

1Java语言程序的特点

目前Java已经广泛的应用在人们的生活和办公,而与其传统的语言设计程序相比,这种技术有着很好的通用性和高效性,而且随着信息防护技术的较强,Java程序已经将这种技术融入到了该软件的应用当中,从而也提高了该程序的安全性,使得人们的信息技术有了很好的保障。由此可见,我们在进行程序设计开发的时候,对于信息的安全保护这是十分重要的,只有有效的保护了信息,这种软件程序也能收到人们的清青睐。

当我们在进行应用程序的开发时,对于数据库的链接也是十分重要的,如果当程序在运行的时,对于应用程序数据库的没有提高其连接率,那么将会严重的影响着应用程序的功能,这也给人们带来了许多的不便,而且在进行程序开发的过程中,怎么样才能使得数据库得到高效的访问,这对信息技术施工人员来说是十分重要的。而且只有提高应用程序对访问的效率才能使得,该应用软件得到很好的发展。因此,我们可以看出Java数据的访问技术,是Java应用程序的命脉。

2JDBC访问数据库的方式

JDBC是Java中连接数据库的接口技术,它是支持基本SQL功能的—个通用低层的应用程序编程接口。JDBC主要有两类接口:面向程序开发人员的JDBC API和面向JDBC驱动程序的JDBC、Driver和API。Java语言提供了一组用来执行基本的数据库操作的种类和接口的JD—BC API,这些API包含在Java语言的java.sql包中。开发者使用这些API可以完成所有基本的数据库操作,诸如管理JDBC驱动程序,并可进行数据库连接、处理相关的操作、返回操作结果等。JDBC为Java开发人员开发数据库提供了统一的机制,然而在使用JDBC访问数据库的驱动程序的具体实现方式上。

3实现方式的比较分析

Java对数据库访问的方式主要有四种,它们分别是JDBC—ODBC桥接方法、本地API连接方式、网络协议和本地协议。对这些方法分类主要是因为在不同的情况下,这些方法有着不同的运用方式和应用效果。而且不同的访问方式也存在着不同的差异。所以,我们在访问方式的选取的时候,一定要选取合适的访问方法,否知在应用软件运行的时候,将会出现极大的问题,这对人们的办公和生活有严重影响。

3.1JDBC—ODBC桥接方式

这种方式是通过ODBC驱动程序来提供JDBC对数据库的访问。使用该方式,只需要在操作系统中创建数据库管理系统(例如Oracle)的某一ODBC数据源,就可在Java程序中访问该数据源。由于操作系统中的ODBC管理程序目前已基本能支持各种类型的数据源,在Java应用程序中可以直接使用JDK所附带的驱动程序sun.idbc.odbc.Jdbc Odbc Driver进行连接,因此这种方式是一种最便捷的使用方式。但是这种方式由于需要在JDBC API和ODBC API之间进行转换,因此从效率上来说,是最不理想的一种方式。

3.2本地API方式

是一种将标准的JDBC调用转换为本地调用,即转化为某—数据库管理系统(如Oracle)的客户端调用。因此,所调用的JDBC API将实际上转换为特定数据库供应商提供的数据库API,然后通过该数据库供应商的数据库API访问数据库。这类方式的效率比第—类稍高,然而依然存在JDBC API和本地API桥接转换的问题。此外,这种方式要求在每台客户机上预装本地API库,因此不利于应用系统的维护。

3.3网络协议方式

网络协议方式是将JDBC调用转换为独立于数据库管理系统的网络协议。JDBC驱动程序并没有直接和数据库进行通信,而是和一个中间件通信,然后这个中间件和数据库进行通信。这个中间件可将Java应用程序连接到不同的数据库。

3.4本地协议方式

本地协议方式也就是我们常说的本地连接,是采用纯Java驱动程序为基础的一种新型的连接模式,在其应用的时候是通过将JDBC调用系统直接转换为能够为数据库管理做服务的一种结构体系,进而生成一种网络管理协议体系,以保障访问数据库的顺利、持续和科学。这一类驱动器的应用是以驱动程序为基础,有数据库开发商自行开发和研制的一个环节。同时这种方式的应用对于一个生成其他数据库结构都是十分必要和关键的。

通过上述方式进行比较得出,我们可以看出这四种实现的协议连接方式中,网络协议和本地协议的使用和选择在访问率上有着重大的优势,同时存在着众多可移植性的优势,在这两个方面上,这两种连接和驱动方式是极为关键和有力的。在选用访问数据库来作为实现方式的时候,我们应当根据现有工作要求的实际情况入手去总结和归纳,针对程序库中需要访问数据的类型和结构体系来加载合适的处理模式和方法,从而顺利、科学的执行相关命令与要求。

4可复用的数据库连接池机制与实现

在Java程序来进行书库卡访问的时候,数据库的连接可谓是一条不可缺少的条件,也是现代化社会发展中最为关键的一个核心环节。在工作中,需要在访问之初设置一个可靠的连接通道,在访问结束之后需要及时的关闭这一连接通道。这样的访问方式对于预防各种新建、销毁文档有着重要的保护作用,同时还可以增加应用程序的工作效率,降低开发成本,因而在目前的操作中需要针对这一现象加以研究和处理,尤其是针对那些用户和速度要求高的数据库应用系统中,更是要及时的对这些问题加以总结和处理完善,从而使得整个管理体系得到有效的完善。这种结构体系在应用中数据库结构的连接完成之后,能够及时的将数据库的连接交还给连接池,将其中扩展到连接池的功能供应要求,使得其中的配置和管理策略方面的问题都能够得到有效的连接。在此之后,执行数据库的时候就和常规的应用程序相差无几了,其无论是程序类型还是程序连接技术,都能够根据连接管理方式的不同来进行归纳和总结,从而做到因地制宜的访问,以便数据库管理连接的正常、科学进行。

5结束语

当前,由于电子信息化时代的到来给我们的生活带来了极大的方面,让人们在足不出户的情况下,就可以了解到先关的知识点,这对社会的发展和人们的生活都有着极大的作用。目前,随着一些应用程序的普遍使用,人们在开始对其进行了一定的认识。不过由于我国在电子信息处理技术和数据访问技术等方面还是存在着严重的不足,而且这些也是电子信息应用程序的命脉,因此想要将电子信息应用程序进行很好的发展,我们只有对着些程序中存在的问题进行不断的完善和发展,而且在进行相关程序的我们还要向发达国家进行请教,只有这样才能推动我国的电子信息应用软件的发展,才能使人们的生活更加的便利。

参考文献:

[1]李阳,李晓东.基于JDBC的数据库连接池技术的研究[J].科技信息,2009(06).

[2]石义良,邓娟.JSP数据库访问技术研究[J].科技资讯,2009(02).

[作者简介]常红(1980.07.21-),女,汉族,黑龙江大庆人,黑龙江生物科技职业学院讲师,硕士学位,研究方向:计算机科学与技术专业。

Java界面程序技术 篇4

1 JSR82规范

2002年,Java开发社区发布了基于Java平台的蓝牙API规范JSR82。JSR82规范对支持JAVA嵌入式设备的JAVA应用编程接口做出了明确规定,提供了一系列的标准API,可以帮助JAVA嵌入式设备无缝集成蓝牙环境。

Java蓝牙无线技术API包含两个包,javax.bluetooth和javax.obex。javax.bluetooth包含了核心的蓝牙API,如蓝牙设备管理,蓝牙设备发现,蓝牙服务查找、L2CAP等类。javax.obex属于高级API,是一个不依赖于蓝牙核心API的数据交换包。

javax.bluetooth包定义了4个接口,6个类和3个异常。其中LocalDevice类、RemoteDevice类和DeviceClass类属于设备管理API;UUID类、DataElement类、Discorylistener接口、DiscoveryAgent类和SeviceRecord接口属于服务发现API;L2CAPconnection接口和L2CAPconnectionNotifier接口属于连接API。

2 蓝牙应用程序模型

每一个蓝牙应用都表现为一个蓝牙服务,提供服务的一方为服务端,消费服务的一方为客户端。蓝牙客户端的行为包括初始化、发现周围服务和设备、消费服务等,蓝牙服务端的行为包括初始化、创建服务、注册服务、等待客户端访问、创建连接提供客户端消费等。

具备蓝牙功能的应用程序必须先要初始化蓝牙堆栈,一个客户端对远端服务进行消费时首先要发现所有附近的设备,然后对每一个发现的设备搜索它感兴趣的服务,而提供服务的服务端在服务发现数据库(SDDB,Service Discovery Database)中对客户端进行注册,对他们进行有效广播,然后等待引入的连接,在他们进入时接受他们并为他们提供服务。最后,当不再需要服务时,应用程序会在服务发现数据库中将他们移除。

2.1 初始化

无论蓝牙客户端还是服务端,都首先要进行初始化,通常为初始化UUID类、获得LocalDevice类等操作。服务端需要设置LocalDevice,让设备处于可发现状态,设置发现模式,而客户端不用设置发现模式。

在javax.bluetooth中,UUID类用来唯一识别一个蓝牙服务,每一个这样的标识符都要在时空上保证唯一。UUID类有16位或32位的简短UUID或128位的完整UUID。一般在创建时要生成自己的UUID,在服务搜索时要同时给出指定的UUID和通信协议的UUID。

设备管理API中的LocalDevice类代表本地蓝牙设备,初始化时首先通过getLocalDevice()方法取得LocalDevice对象实例,然后调用setDiscoverable()方法设置发现模式。有三种发现模式:DiscoveryAgent.GIAC代表无时间限制模式,DiscoveryAgent.LIAC代表在规定的时间内可被搜索,超时就进入不可搜索状态,DiscoveryAgent.NOT_DISCOVERABLE代表不可搜索状态。

示例代码如下:

2.2 服务端操作

1)创建服务并注册:

利用UUID计算URL,创建L2CAPConnectionNotifier连接(对应L2CAP)或StreamConnectionNotifier连接(对应SPP)。利用LocaIDevice取得对应此L2CAPConneCtionNotifier连接的服务ServiceRecord。如有必要,可以使用DataElement来设置ServiceRecord的属性。

2)等待客户访问:

调用ConnectionNotifier的方法,等待连接。

2.3 客户端操作

1)发现周围设备和服务:

在蓝牙网络中,客户端通常不能直接得到服务端的蓝牙地址,要使用服务发现API搜索周围的设备和服务。为消费一项指定的服务,客户端需要经过三个步骤:搜索设备、搜索服务和连接通信。服务发现API包括DataElement类、Discoverylistener接口、DiscoveryAgent类和ServiceRecord接口。

首先通过LocaIDevice取得DiscoveryAgent对象。利用该对象发起一次设备查询,设备找到后会调用DiscoveryListener接口对应的方法,记录下远端设备RemoteDevice。再次通过DiscoveryAgent对象,并提供刚刚找到的远端设备,发起一次服务查询来查询感兴趣的远端服务。服务找到后会调用DiscoveryListener接口对应的方法,将ServiceRecord服务记录下来。至此,一次完整的搜索结束,得到了感兴趣的ServiceRecord列表。

示例代码如下:

2)消费服务:

通过ServiceRecord的相应方法可以取得远端服务的URL。这样就可根据服务的类型选择创建对应SPP的StreamConnection或对应L2CAP的L2CAPConnection来进行数据通信了。

2.4 蓝牙连接

蓝牙支持RFCOMM和L2CAP两种类型的连接。蓝牙API使用通用连接框架的StreamConnection和StreamConnectionNotifier支持RFCOMM,连接类型L2CAPConnection和L2CAPConnectionNotifier用于支持L2CAP。创建连接需要使用Connection.open(String urlName)方法,参数urlName代表了连接的URL,格式如下所示:

sheme://host:port;parameters

其中scheme代表了连接的类型,对应RFCOOM为btspp,对应L2CAP为btl2cap。

host对应服务端为localhost,对应客户端为远端蓝牙地址。

port对应服务端为UUID,对应客户端为服务端口。

parameters指定了可选的设置,如服务名称或MTU大小。

使用服务端连接时,首先通过L2CAPConnectionNotifier或StreamConnectionNotifier建立连接,同时创建一个蓝牙服务。

L2CAPConnectionNotifier notifier=(L2CAPConnectionNotifier)Connector.open(url);

然后调用acceptAndOpen()方法,该方法会自动将服务注册到蓝牙发现数据库SDDB中,之后就可以被客户端搜索了。

L2CAPConnection con=notifier.acceptAndOpen();

使用客户端连接时,也是通过Connector.open(url)建立连接,参数url通过serviceRecord.getConnectionURL()取得,例如:

3 结束语

蓝牙技术拥有连接简单、互操作性强的特点,在无线办公、电子支付、汽车工业、信息家电、医疗设备等领域中有着广泛的应用。基于Java的JSR82规范开发无线蓝牙应用程序,继承了Java语言优秀的平台无关特性,可以大大增加程序的可移植性。

摘要:介绍了Java蓝牙无线技术API规范JSR82,并给出了采用JSR82规范开发蓝牙无线应用程序的具体实现方法和部分实例代码。

关键词:蓝牙,Java,JSR82

参考文献

[1]詹建飞.J2ME开发精解[M].北京:电子工业出版社,2006.

[2]詹建飞.JavaME核心技术与最佳实践[M].北京:电子工业出版社,2007.

java图形用户界面实验报告 篇5

课程名称 JAVA基础 实验项目名称 图形用户界面设计

实验学生班级 实验学生姓名 学

号 同组学生姓名 无 实验时间 2012年11月 实验地点

实验成绩评定 指导教师签字 年 月 日

一、实验目的和要求

1.目的:掌握java AWT及Swing组件的使用方法,包括窗口、框架、对话框、布局方式、面板、文本编辑器、按钮、组合框等,合理利用委托事件处理模型,掌握不同组件,不同事件的事件处理方法,设计出能够响应事件的java图形用户界面。

2.要求:设计图形用户界面,事件处理,异常处理并弹出对话框,提示重新输入信息。

二、实验题目

验证哥德巴赫猜想,添加图形用户界面

三、实验方法与步骤(需求分析、算法设计思路、流程图等)

1.添加图形用户界面

import java.awt.*;import java.awt.event.*;import javax.swing.*;public class GDBH extends Frame implements ActionListener //窗口框架响应单击事件,利用awt组件设计框架 { private Button button;//按钮 private TextField text1;//文本行 private TextArea text2;//文本区 public GDBH(){ super(“验证哥德巴赫猜想”);//设置框架窗口标题

this.setBounds(450, 200, 350, 400);//设置框架的位置和尺寸 this.setResizable(false);// 设置框架大小不可改变 this.setBackground(Color.lightGray);// 设置窗口背景颜色

this.setLayout(new FlowLayout());// 默认窗口流布局 中对齐 this.add(new Label(“输入一个整数”));text1=new TextField(“",20);this.add(text1);button=new Button(”验证哥德巴赫猜想“);this.add(button);button.addActionListener(this);//为按钮注册单击事件监听器,委托当前对象处理事件

this.setLayout(new FlowLayout());//默认中对齐 text2=new TextArea(20,25);text2.setEditable(false);this.add(text2);this.setVisible(true);//设置组件可见

this.addWindowListener(new WinClose());// 为框架注册窗口事件监听器,委托WinClose对象处理事件

} 2.实现单击事件和窗口事件监听器接口

public void actionPerformed(ActionEvent e)

//单击事件处理方法,实现ActionListener接口

{ String str =text1.getText();//获得文本行的字符串 try { long num = Long.parseLong(str);// 将字符串转化成长整形 text2.setText(yz(num));} catch(NumberFormatException n){ JOptionPane.showMessageDialog(this, ”“"+str+”“字符串不能转换成整数,请重新输入!”);return;} }

class WinClose implements WindowListener //实现窗口事件监听器接口 { public void windowClosing(WindowEvent e)// 窗口关闭事件处理方法

{

System.exit(0);//程序运行结束 }

public void windowOpened(WindowEvent e){} public void windowClosed(WindowEvent e){} public void windowIconified(WindowEvent e){} public void windowDeiconified(WindowEvent e){} public void windowActivated(WindowEvent e){} public void windowDeactivated(WindowEvent e){} } 3.异常处理

若文本行中的字符串不能转化成长整形,将弹出对话框“字符串不能转换成整数,请重新输入!“;另外如果所输入的整数为小于等于2或大于2小于等于5 也会弹出一个对话框“输入错误!必须是大于2的偶数或大于5的奇数!”(该窗口代码设置在yz()函数中)。

try { long num = Long.parseLong(str);text2.setText(yz(num));} catch(NumberFormatException n){ JOptionPane.showMessageDialog(this, ”“"+str+”“字符串不能转换成整数,请重新输入!”);弹出对话框

return;}

四、实验原始纪录(源程序、数据结构等)

源程序如下

import java.awt.*;import java.awt.event.*;import javax.swing.*;public class GDBH extends Frame implements ActionListener { private Button button;private TextField text1;private TextArea text2;public GDBH(){

super(“验证哥德巴赫猜想”);this.setBounds(450, 200, 350, 400);this.setResizable(false);this.setBackground(Color.lightGray);this.setLayout(new FlowLayout());this.add(new Label(“输入一个整数”));text1=new TextField(“",20);this.add(text1);button=new Button(”验证哥德巴赫猜想“);this.add(button);button.addActionListener(this);this.setLayout(new FlowLayout());text2=new TextArea(20,25);text2.setEditable(false);this.add(text2);this.setVisible(true);this.addWindowListener(new WinClose());} public static void main(String args[]){ new GDBH();} public void actionPerformed(ActionEvent e){ String str =text1.getText();

try { long num = Long.parseLong(str);text2.setText(yz(num));} catch(NumberFormatException n){

JOptionPane.showMessageDialog(this, ”“"+str+”“字符串不能转换成整数,请重新输入!”);return;} } public String yz(long num){

String str1 = “";if(num>2&&num%2==0){ for(long i = 2;i<= num / 2;i++){ for(long j=num/2;j

if(num==i+j){ str1+=num + ” = “ + i + ” + “ + j + ”;n“;} } } } } else if(num>5&&num%2!=0){ for(long i=2;i

{ for(long j=i;j

for(long k=j;k

{

if(Prime(i)&& Prime(j)&&Prime(k)){

if(num==i+j+k)

{ str1 += num + ” = “ + i + ” + “ + j + ” + “+k+”;n“;

} }

} } } } else { JOptionPane.showMessageDialog(this, ”输入错误!必须是大于2的偶数或大于5的奇数!");

} return str1;

} public boolean Prime(long t){ for(long i=2;i

} } class WinClose implements WindowListener {

public void windowClosing(WindowEvent e){ System.exit(0);{ if(t%i==0){ return false;} } return true;} public void windowOpened(WindowEvent e){} public void windowClosed(WindowEvent e){} public void windowIconified(WindowEvent e){} public void windowDeiconified(WindowEvent e){}

public void windowActivated(WindowEvent e){} public void windowDeactivated(WindowEvent e){} }

五、实验结果及分析(计算过程与结果、数据曲线、图表等)

1.当文本行中的字符串不能转化成长整形,抛出异常

2.当输入的整数为小于等于2或大于2小于等于5,弹出对话框

3.当输入偶数时,显示结果如图

4.当输入奇数时,显示结果如图

注:在函数yz()中,验证奇数时应规定3个素数的大小顺序(i ≤j≤k),否则会出现数据重复

六、实验总结与思考

通过本次实验,基本上掌握了使用awt与swing组件设计图形用户界面的方法,包括对窗口,对话框等工具的合理利用。此外,在注册单击事件监听器与窗口事件监听器时,一定要注意响应事件,为其提供事件处理方法。另外,在输入字符串时,要注意抛出异常,当字符串不能转化成整数或所输入的整数不符合规则时,弹出对话框,显示输入错误,重新输入。还有,在窗口的文本区中,所显示的数据要注意其正确性与不重复性,在函数中设定3个素数的大小顺序就可保证数据不重复。

Java界面程序技术 篇6

关键词:java语言,程序漏洞,检测技术,诊断技术

Java语言是近几年计算机编程语言当中应用最为广泛的,根据国际计算机开发语言TIOBE排行榜的统计显示,自2002 年以后,Java语言的使用频率始终稳占计算机编程语言使用频率榜单的前两位,并且随着近几年安卓智能手机系统应用范围的扩大,其也将Java语言作为软件开发语言,因此进一步扩大了Java语言的应用范围。但在实际应用过程中该语言仍存在一定的程序漏洞,这些漏洞会为软件开发公司和使用者带来较大的损害,因此有效避免Java语言漏洞就成为了其发展的重要方向。

1 Java语言的概述

1.1 Java语言的概念

Java语言是一种能够编写跨平台程序的设计语言,该编程语言的通用性和平台移植性较强,目前被广泛地应用在计算机程序、移动端程序、游戏控制、互联网程序等领域。最早的Java编程语言也被称为“Oak”,主要是为一种消费类电子产品而设计的,直到1995 年才正式被更名为Java,同时将该编程语言重新设计,主要应用在Internet程序的编写方面,因此也推动了Web的快速发展。Java语言一经出现就对传统的C语言形成了巨大的冲击,并且随着现代互联网技术的不断发展和深化,使得Java语言的应用前景更加广阔。通常根据其所应用的范围将Java语言分为三大类,分别是标准版(SE)、企业版(EE)和微型版(ME),目前已知应用Java语言的程序员已经超过了C语言使用者。同时Java语言具有允许编程者一次性完成的代码编写的优势,并且可以在多种运行环境下测试,编程人员还不需要根据操作系统的配置对代码进行更换,真正实现了跨平台应用。加之现代安卓系统对Java语言的广泛应用,使得该编程语言的应用率呈几何倍数增长,仅截止到2011 年就有超过30 亿台依靠Java语言编程软件运行的智能手机投放市场,而如今则更多。

1.2 Java语言的程序漏洞检测和诊断的意义

Java编程语言本身具有极其优秀的兼容特性,因此在PC机、服务器以及智能手机等领域的应用非常广泛。但同时也由于现代人对于计算机、手机以及互联网的广泛应用,使得用户对于Java程序的安全性和稳定性有了更高的要求,而编程者本身难以对Java语言自身存在的漏洞进行弥补,因此必须利用有效的漏洞检测和诊断技术进行纠错。同时需要注意的是,在使用计算机和手机时用户对于Java程序安全性的要求并不一致。首先,在使用移动端智能手机时,用户大多将个人信息存储在手机当中,因此用户虽然可以接受手机应用软件上的一些功能缺陷,但是却不能忽视手机程序本身存在的安全漏洞,所以近几年电子技术开发企业均在不断加强手机漏洞检测工作的力度,但目前仍有大量的恶意软件可以绕过检测工具对用户的移动终端造成损伤。有效提升Java语言程序漏洞检测和诊断技术已经成为了各大电子技术企业的发展趋势,也成为了现代电子产品用户的重要需求。

2 确定性重现技术对Java程序漏洞的检测和诊断

使软件程序的性能能够实现最大化的利用一直是软件开发者所追求的目标,而随着现代计算机和移动端多核技术广泛地应用,使得并发程序的需求量大大增加,使原本仅供大型并行计算机和大规模集群计算机所使用的多核并发程序得到了更加广阔的市场。但是高性能的并发程序编写却成为了现代编程人员最难的“考题”之一,其主要是因为并发程序在运行过程中会出现明显的不确定性,造成这种情况的原因在于程序运行过程中线程交替顺序具有波动性,无法满足编程人员的原有要求,使得运行结果无法实现,也就被称为“并发错误”。这种问题一般很难检测和诊断,其与不同的线性程序漏洞不同,不仅具有线性程序漏洞的特点,而且还会因线程交替顺序的变化而产生不同的运行结果。虽然实际操作过程中这一漏洞发生的概率较低,一旦出现就会导致严重的后果。

2.1 并发程序的检测和诊断

目前,一般采用的应用程序检测和诊断流程包括三个部分,其一是测试用例的设计和测试;其二是跟踪程序定位漏洞;其三是对漏洞的修补。其中跟踪程序并定位的测试过程是最消耗时间的,但是并发程序在运行过程中难以对错误进行重现,因此无法有效对漏洞进行跟踪和定位,而漏洞的修补工作主要取决于编程人员对于漏洞触发因素的判断,如果无法对漏洞进行定位,那么也就无法了解其触发因素,使得编程者不能对漏洞进行有效的修补。

而为了弥补这一问题,编程人员就需要利用一种能够重新并发程序漏洞的技术。在程序测试阶段,编程人员一般会在调试过程中添加日志信息,而当这些日志信息能够被用来重现错误程序时,就会被用作与漏洞的诊断工作中,编程人员可以反复对错误的程序进行运行,并根据采集信息的细化研究,最终确定出错的程序代码位置,并对其进行相应的修复工作。

2.2 确定性重现技术

确定性重现技术最初也是被应用在重现程序错误段的工作中,其主要方式在于将所有可能引发程序运行问题的不确定因素添加到日志信息中,并将其重现。而这种技术之所以能够帮助检测和诊断Java程序的漏洞,主要就是在于其能够将所有不确定因素进行列举,进而获得确定性的漏洞定位。通常情况下这种不确定的因素分为两大类,其一是程序输入的过程,例如文件读取、文件录入等,此时就可以通过日志信息对这些操作进行重现;其二是在系统被调用时产生的返回值,例如程序运行时系统对运行时间的获取和随机值的生成等,而此时所产生的返回值也被看做是程序输入当中重现的数据。但是在重现过程中部分由于硬件状态所导致的不确定因素很难被重现,例如指令时间之间的差异会导致程序运行的差异,因此在记录这种不确定因素时一般是对其逻辑时间进行记录,而不是物理时间,其可以有效地对这种非线性因素进行重现和执行,进而获得错误程序的定位。

2.3 基于依赖的重现

当两条程序指令同时对一个物理页面、缓存或内存地址进行访问的过程中,其即被视为对数据产生了依赖,这种依赖情况又被称为冲突和限制。该情况发生需要满足三大条件,其一是当两个指令的访问对象均在同一内存位置上时;其二是两个指令当中至少有一条指令为操作;其三是其中一个指令必然先于另外一条指令发生,而为了达到程序运行的效果,应该保证在第二条指令发生前,第一条指令就已经完全完成。确定性重现技术当中对于依赖数量的确定主要取决该程序所选择的粒度,例如在某一个确定性技术依据真实的地址对数据进行定位的依赖,那么该依赖则不被记录,虽然在记录依赖的过程中粒度并不会对重现技术的策略造成较大的影响,但是当粒度过小或过大情况下还是会导致程序运行性能的大幅度下降。

3 符号执行对Java程序漏洞检测和诊断

在对现代软件进行漏洞检测和诊断过程中,利用符号化执行技术的搜索优势能够有效提升工作效率。目前这一技术主要应用在软件测试用例生成过程、模糊测试过程、安全漏洞检测过程等各个方面,已知的符号化检测技术能够对跨站的脚本攻击、数值溢出、参数值窜改等进行检测。

3.1 符号化执行技术

符号化执行技术最早是在20 世纪70 年代所提出的,其主要是被应用在程序检测过程中,目前所应用的符号化执行技术本身主要是对不确定输入数据所引发的各种可能程序路径进行分析,这样能够有效缩小测试的搜索范围。符号化技术具体的操作方法就是将(Symbolic Input Value)输入到程序当中对具体的问题程序进行代替,同时将与输入有关的程序段表示为一个依赖符号输入的线性函数,这样就可以在各个程序运行遇到分支时产生相应的制约条件,对这些制约条件的运行途径进行搜索,就能够满足对程序状态的整体搜索和检测。

3.2 导向性符号化执行技术

为了有效解决现代安卓程序运行过程中存在的各种问题,应该将导向性符号化的执行利用静态研究方法进行提取,并将其应用在符号化执行的导向信息当中,而这类信息就能够对符号化执行技术起到指导作用,完成问题程序段的搜索工作。这一技术有效地将符号化的执行范围缩小,从而使漏洞检测和诊断的搜索时间大幅度缩减,还不会降低代码的覆盖率。在实际操作的过程中,导向性的符号化执行技术主要是依据于上下文的信息序列作为导向信息,从而指导符号化转型技术对输入的各数据进行搜索,其是利用大范围搜索函数调用图获得能够运行目标程序的必要触发事件,在这一步骤操作时一般所获得的触发事件仅为名称,但如果实际触发事件本身为图形界面属性,则不能单一由名称来进行指定,此时还应该在此基础上对相应的视图信息进行确定。需要注意的是,导向性符号执行技术当中所需要的时间序列本身必须满足Java程序的生命周期,但是利用函数调用图所获得的事件信息以离散型为主,无法确定其一定能够满足生命周期,因此可以对这一事件进行映射处理,尽量缩小符号化技术执行的搜索范围。另外还应该将相同的事件数据进行有效合并,避免在检测和诊断过程中重复触发同样的事件。

4 导向符号化执行信息泄露的检测和诊断

4.1 静态信息泄露的检测

信息泄露指的就是用户的个人私隐数据被发送到陌生用户端口,一般情况下该陌生用户端口均为系统不守信的接受者,并且具有信息截获和发送的操作过程。典型的信息泄露过程为:首先,程序从系统当中读取了用户的个人地理数据,并将该列表数据存储在内存当中。其次,内存中的地理数据信息借助Send To Network函数经由互联网发送到接受者用户端。总结起来就是先获取用户的个人信息,然后将信息在用户端内存当中进行传播,最终将信息送出。

因此,在对静态信息泄露问题进行检测时也可以分为三类,其中对于信息源和信息发送位置的检测可以利用标注系统的调用来进行确定,而对于信息传播路径的检测则应该从应用程序的逻辑性入手,检查在信息源和发送位置之间各种可能的发送途径,其主要利用的是程序依赖性的分析方法,即调查一个指令的发出是否依赖于其它指令的执行情况。

4.2 Leak Miner泄露检测技术

Leak Miner泄露检测技术主要是应用在移动终端(安卓系统)下的程序漏洞检测和诊断工作中,其能够检测所有可能的信息泄露途径。在函数调用图的基础上,该技术还可以采用程序切片模式对敏感信息在程序内的传播进行有效的跟踪,这种检测模式主要是为了提高敏感信息传播的分辨率,引入额外的伪传播源进行检测,这样能够保证整体敏感信息的切片在一个迭代当中完成。

结语

Java语言是现代软件程序编程过程中最常用的语言类型,使用该编程语言的编程人员数量已经超越了C语言使用者,但是该语言编程后具有的漏洞也是客观存在的,必须不断加强程序漏洞的检测和诊断技术,分别从确定性重建技术、符号执行、导向性符号化执行信息泄露的角度进行深入研究,保障用户的个人数据安全。

参考文献

[1]杨克峤.java程序优化与数据竞争检测的研究[D].复旦大学,2010.

[2]叶楚天.基于正则表达式的java Web程序漏洞检测技术研究[D].华中科技大学,2013.

Java界面程序技术 篇7

关键词:WebQuest,技术,JAVA语言

随着时代的发展, 新旧交替的步伐越来越紧迫, 特别在计算机程序领域, 这种现象更加普遍寻常。在此基础上的的JAVA语言程序自身存在极大的弊端, 无论对于普通院校和广大的学生都产生了极大的困扰。与此而来伴生出现的变革的呼声也越来越明显。而Web Quest的引入无疑成为一剂药力十足的强心剂。到底效果如何实在值得我们进行必要的探究。

1 Web Quest概述

1995, 美国圣地亚哥州立大学的汤姆·马奇 (Tom March) 博士和伯尼·道奇 (Bernie Dodge) 提出了一种基于网络的教学模式, 是为Web Quest。Web Quest最初属于针对于培训普通教师的在线教学的模式。在风行当时的建构主义之下, Web Quest以普通的学生为教学中心, 宣称在由教师进行必要的引导, 利用网络泛资源, 由学生自主完成教师布置的学习任务。这种教学方法能够极大程度上提高学生的自主认知技能和解决实际工作突发问题的能力。这一教学方法不仅可以极大地提高学生的自主能力, 还可以培养学生自身创造力。

近年来, Web Quest教学模式在我国也有了一定的发展应用, 肇始于2000年的“英特尔未来教育”便是其中一大范例。作为英特尔公司大力普及课堂计算机技术在课堂应用而广泛开展的全球性的培训项目, 此活动通过培训一线的学科教师, 促进探究型学习的发展演变, 使得计算机与现有课程进行密切合作, 从而提高学生的学习效率。自2000年该活动在中国全国启动以来, 在31个省市地区取得了显著的发展成果。

2 java语言程序的现状分析

2.1 现状分析

现行的高职JAVA语言程序中, 实际企业所需求的知识与学校教授知识存在严重的脱节。在学习过程中, 学生缺乏对实际职业岗位所需求的切实能力的培养, 很多情况下学生们甚至缺乏必备的职业岗位素质培训。在学校方面, 将相当大比重的课程用于理论性知识的传授上, 应用在前沿领域的科技与趋势被严重忽略。学生没有足够的机会去训练自己的动手能力。很多情况下仅仅靠书写来设计java程序。这种情况下培养出来的工程师在进入到企业之后无法胜任java编程过程中的实际工作。另外, 师生缺乏必要的互动也严重影响了工作。

2.2 缺乏操作

缺乏明确的学习目的使得学生无法彻底明晰java程序。在很多学生眼中, JAVA仅仅在于掌握书本理论知识。加之老师未将企业在实际操作中要求的应用与技术导入到实践操作中, 学生一味钻研理论知识, 而缺乏对java的实际作用的了解。在学习过程中不能为参加工作后的Web程序开发、J2EE程序设计打下良好的操作能力积累。这种情况下的高职学生缺乏程序设计中惯常情况下积累出来的开发经验, 也无法达到企业对java程序员的实际要求。

2.3 缺乏创新

JAVA语言程序课程缺乏创新。基本上以学生教材中的内容硬性进行, 教师对语句和语法的讲解有着特殊的偏好。沿用一般意义的模式传统, 着重进行理论知识的讲授。通过程序语言导入编程思想的思维尚未普及, 进而未能很好的培养学生参加工作后所必备的实际操作技能。实践活动中所缺乏的实际能力培养环节使得学生只能对简单的程序进行读解而很难解决现实生活中存在的程序问题。更不要说那些伴随着工作产生的新的实际问题。很多学生在参加工作之后无法高效的思考程序算法, 开发技能的新突破口。很大程度上阻挠了学生的全面发展和工作潜能, 贻害极深。

3 JAVA语言程序的改进

3.1 过滤与精选

高职院校的JAVA课程在开设之前要加以筛选。借鉴OA办公框架作为教学范例, 力求知识点与项目的结合, 培养学生的程序设计与大胆面向对象的思想。从而实现分析项目、设计程序的习惯与思维。

在实际活动中, 也要适当分解整体, 结合教学大纲讲解知识要点, 以面向对象的软件设计思维引导进行步骤拆分:可行性、需求、概要设计、详细设计、编码、测试、运行、维护等环节循序渐进、分别展开。每一步骤又一定程度上被划分成不定的小任务。最终的目的在于培养学生对软件的开发流程掌握。从而实现初步具备初级程序员的各方面素质;可以对质量控制与开发模板进行初步使用, 完善编程规范。在明确学习任务与目标之后, 学生才能更好的完成既定任务, 与此同时还能极大的提高基本技能。

3.2 引入Web Quest技术

Web Quest的引入可以极大的调动学生自主学习的积极性。不同于传统的方式, 在Web Quest指导下的模式中仅仅对学生起到指导、帮助、促进的职责, 而学生则要通过自身的努力去探索, 从而掌握知识。学习兴趣在这种教学模式下被大大激发, 学生的学习动机增强之后可以自主创设适合自身的学习情境。而项目小组的划分也会培养孩子们的的团队协作能力与集体精神。

3.3 资源的建构

创新改进后的高职JAVA程序要充分利用网络资源的优势, 在Java课程、课件、前沿技术资讯等资料共享的平台上, 依托论坛、邮件、BBS等手段积极进行课外交流, 拓宽沟通渠道、拓展各种辅导材料的使用, 完成对应程序设计项目的练习, 巩固固有知识, 扩大未知知识面。另外, 网络平台对学生的学习效果的进行测试, 一定程度上可以提高Java的效率。

4 结语

本文对Web Quest技术与java语言程序设计的进行了现状分析, 分析现行资源与学生的学习情况。提出了二者的结合提案。Web Quest技术的导入可以极大提高学生的学习兴趣与积极性、自主性、合作精神, 减少求知盲目性, 为终身学习打下了良好的基础。

参考文献

[1]王晓光, 李娜, 张少龙, 齐应杰.基于WebQuest的高职java教学改革探索[J].考试周刊, 2012.

[2]石立霞.基于WebQuest的高职计算机基础课程教学模式探究[D].天津大学, 2010.

Java界面程序技术 篇8

1 设置组件的字体

设置组件的字体的方法是setFont()方法,格式如下:

组件对象名.setFont(Font f);

Font类在java.awt中,Font类表示字体,用来以可见方式呈现文本。Font类的构造方法如下:

Font(String name, int style, int size):根据指定字体名称name、字体样式style和字体大小size,创建一个新Font。

其中,参数name表示字体名称,如“黑体”、“Times New Ro-man”等。参数style表示字体样式,此样式可以为Font.PLAIN(普通)、Font.BOLD(粗体)、Font.ITALIC(斜体)或Font.BOLD+Font.ITALIC。参数size表示字体大小,单位是磅,如12,16等整数。

例如,设置组件按钮b的标题的字体为宋体、加粗、20 磅,可以使用下面的语句:

JButton b=new JButton("退出");

b.set Font(new Font("宋体",Font.BOLD,20));

也可以先定义Font类的有名字的对象,然后再设置字体,例如:

JButton b=new JButton("退出");

Font f=new Font("宋体",Font.BOLD,20);

b.setFont(f);

2 设置前景色、背景色的set Foreground、set Back-ground方法

设置前景色、背景色的方法如下:

1)public void setForeground(Color c):设置组件的前景色。

2)public void setBackground(Color c):设置组件的背景色。

如果直接调用上述方法,则颜色与当前容器或所有图形有关。如果通过组件对象调用上述方法,则颜色只是与该组件有关。

3 添加图片

添加图片的方法有多种,可以在窗体中使用图像作为整个背景图片,也可以用图片来对窗体做局部的装饰。如果只想用图片来对窗体做局部的装饰,那么可以在需要放置图片的位置先放置一个JLabel的对象,然后设置它的图标为创建好的Image Icon对象即可。

4 设置JFrame的初始位置、大小等

set Size(int width, int height):调整组件的大小,使其宽度为width,高度为height。单位是像素。

set Location(x,y):设置窗口显示的起始坐标(x,y)。

set Resizable(false):参数为false时,禁止用户调整窗口大小。

5 使用上述方法美化GUI的实例

[例1]学生成绩管理系统的主界面。在这个界面中,设置了组件的字体、背景色、前景色,在标签中添加了图片。

程序的运行结果如图1所示。

由于篇幅所限,Window3(添加成绩)、Window4(按学号查询)、Window5(按姓名查询)、Window6(修改成绩)等与数据库连接并操作数据库中数据的类不一一列出了。

4 结束语

上一篇:推行措施下一篇:布拉氏酵母菌散剂