fkjava

BlogJava 首页 新随笔 联系 聚合 管理
  49 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

2012年9月17日 #

 

 

一般默认情况下,Eclipse的代码提示功能是比MicrosoftVisualStudio的差很多的,主要是Eclipse本身有很多选项是默认关闭的,要开发者自己去手动配置。如果开发者不清楚的话,就不知道Eclipse的代码提示功能一样能像MicrosoftVisualStudio的代码提示功能一样强大。

先举个简单的例子说明问题所在,例如在Eclipse,代码里面,打个foreachswitch等这些,是无法得到代码提示的,其他的就更不用说了,而在MicrosoftVisualStudio里面是得到非常友好的代码提示的。实际上,Eclipse代码里面的代码提示功能默认的一般是点“.”,一般是有了点“.”才会有代码提示。

 

原理:“Auto Activation triggers for java”这个选项就是指触发代码提示的的选项,把“.”改成“.abcdefghijklmnopqrstuvwxyz(,”的意思,就是指遇到26个字母和.,(这些符号就触发代码提示功能了。增强Eclipse的代码提示功能,具体怎么样来配置?下面开始说步骤:

 

1.打开Eclipse,然后“window”→“Preferences

2.选择“java”,展开,“Editor”,选择“Content Assist”。

3.选择“Content Assist”,然后看到右边,右边的“Auto-Activation”下面的“Auto Activation triggers for java”这个选项。其实就是指触发代码提示的就是“.”这个符号.

4.Auto Activation triggers for java”这个选项,在“.”后加abc字母,方便后面的查找修改。然后“apply”,点击“OK”。

5.然后,“File”→“Export”,在弹出的窗口中选择“Perferences”,点击“下一步”。

6.选择导出文件路径,本人导出到桌面,输入“test”作为文件名,点击“保存”。

7.在桌面找到刚在保存的文件“test.epf,右键选择“用记事本打开”。

8.可以看到很多配置Eclipse的信息。

9.按“ctrl+F”快捷键,输入“.abc”,点击“查找下一个”。

10.查找到“.abc”的配置信息.

11.把“.abc”改成“.abcdefghijklmnopqrstuvwxyz(,”,保存,关闭“test.epf”。

12.回到Eclipse界面,“File”→“Import”,在弹出的窗口中选择“Perferences”,点击“下一步”,选择刚在已经修改的“test.epf”文件,点击“打开”,点击“Finish”。该步骤和上面的导出步骤类似。

13.最后当然是进行代码测试了。随便新建一个工程,新建一个类。在代码输入switchforeach等进行测试。你立即会发现,果然出了提示,而且无论是敲哪个字母都会有很多相关的提示了,很流畅很方便。

 

总结:“Auto Activation triggers for java”这个选项就是指触发代码提示的的选项,把“.”改成“.abcdefghijklmnopqrstuvwxyz(,”的意思,就是指遇到26个字母和.,(这些符号就触发代码提示功能了。顺便说一下,修改类名,接口名等以不同颜色高亮的,可以这样配置在“java”→“enditor”→“syntac”,右边展开“java”→“classes”,勾上“Enable”这个选项,选择自己喜欢的颜色即可。当然还有其他相关的颜色配置。具体就不说啦。其实,在“Preferences”这个东西,有很多可以配置的东西,使得Eclipse优化的,具体的就要各个人根据自己个人喜好去配置

您正在看的文章来自疯狂软件教育中心 www.fkjava.org

信息咨询:Q564205990               星老师

posted @ 2012-09-24 15:15 疯狂软件 阅读(366) | 评论 (0)编辑 收藏

 

首先,对编码知识进行简要的说明,请务必理解后再看下面的代码。发送中文字符请求时,如果使用get方式,运行正常;而使用post方法则会出现乱码。这是由于异步对象XMLHttpRequest在处理返回的responseText的时候,是按UTF-8编码进行解码的。

如果你原来的网页编码是gb2312的话,当然会发生编码的冲突了;如果你原来的网页编码是utf-8,那么就不会出现中文乱码的问题了。

出现了中文乱码该怎么办呢?通常的解决办法是用escape()对发送的数据进行编码,然后在返回的responseText上再用unescape()进行解码。然而在JavaScript编程中通常不推荐使用escape()unescape(),而推荐使用encodeURI()decodeURI()。请看下面的“表单验证实例”,或许对你学习编码知识有一定的帮助。

 

第一、jQueryload(url,[data],[callback])方法

 

语法说明:url为异步请求的地址,data用来向服务器传送请求数据,为可选参数。一旦data参数启用,整个请求过程将以post的方式进行,否则默认为get方式。如果希望在get方式下也传递数据,可以在url地址后面用类似“dataname1=data1&dataName2=data2”的方法。

callbackAjax加载成功后运行的回调函数。另外使用load()方法返回的数据,不再需要考虑是文本还是XMLjQuery都会自动进行处理。好了,下面马上使用load()方法实现“自动表单验证”实例。首先是,html框架,5个例子都是一样的,如下:

1. <form>  

2. 用户昵称:<input type="text" onblur="startCheck(this)" name="User" id="User"><span id="UserResult"></span><br />  

3. 输入密码:<input type="password" name="passwd1"><br />  

4. 确认密码:</td><td><input type="password" name="passwd2"><br />  

5. <input type="submit" value="注册" class="button">  

6. <input type="reset" value="重置" class="button">  

7. </form> 

必要说明:

1onblur="startCheck(this)" 这是JavaScript代码(简称js) ,意思是text文本框失去焦点时触发自定义函数startCheck(),this是指代text文本框的值。

2<span id="UserResult"></span>用来存放异步对象返回的结果。

1. jQuery代码如下: 

2. 

3. <script language="javascript" src="jquery.min.js"></script>  

4. <script language="javascript">  

5. function startCheck(oInput){  

6.     //首先判断是否有输入,没有输入直接返回,并提示  

7.     if(!oInput.value){  

8.         oInput.focus(); //聚焦到用户名的输入框  

9.         document.getElementById("UserResult").innerHTML = "User cannot be empty.";  

10.         return;  

11.     }  

12.     oInput=$.trim(oInput.value); //使用jQuery$.trim()方法过滤左右空格  

13.     var sUrl = "action.asp?user=" + oInput;  

14.     sUrl=encodeURI(sUrl); //使用encodeURI()编码,解决中文乱码问题  

15.     $("#UserResult").load(sUrl,function(data){  

16.         $("#UserResult").html(decodeURI(data)); //使用decodeURI()解码  

17.         }  

18.     );  

19. }  

20. </script> 

必要说明:

1、使用jQuery时,都必须加载jquery.min.js文件,可以到http://jquery.com/官网下载最新的版本。

2、判断是否有输入时,用的全是JavaScript语法。

3、对传递给“处理页”的参数进行encodeURI编码,以解决中文乱码问题。

4load()中的function函数是为了对返回结果进行decodeURI解码,以解决中文乱码问题。

5、对$.trim()$("#UserResult")htmljQuery语法不理解的,可以参考jQuery中文手册。本站提供下载。

1. action.asp处理页代码如下: 

2. 

3. <%  

4. if(Request("user")="eko") then  

5. Response.Write "Sorry, " & Request("user") & " already exists."  

6. else  

7. Response.Write Request("user")&" is ok."  

8. end if  

9. %>

必要说明:

1action.asp处理页的编码是GB2312,如果把"Sorry..already exists..is ik"等英文改为中文,请看下面的说明。

2、使用post方法会出现乱码,这是由于异步对象XMLHttpRequest在处理返回的responseText的时候,是按UTF-8编码进行解码的。

3、所以post方式的话,必须把action.asp页另存为时,第三项的编码由 ANST 改为 UTF-8 (请务必记住!!)

 

第二、使用$.get(url,[data],[callback])$.post(url,[data],[callback])方法

 

语法说明:尽管load()方法可以实现getpost两种方式,但很多时候开发者还是希望能够指定发送方式,并且处理服务器返回的值。jQuery提供了$.get()$.post()两种方法,分别针对这两种请求方式。

其中,url为请求地址,data为请求数据的列表,是可选参数,callback为请求成功后的回调函数,该函数接受两个参数,第一个参数为服务器返回的数据,第二个参数为服务器的状态,是可选参数。$.post()中的type为请求数据的类型,可以是htmlxmljson等。 “可自动校验表单实例”的jQuery代码如下,html如上所述。

1. <script language="javascript" src="jquery.min.js"></script>  

2. <script language="javascript">  

3. function createQueryString(){  

4.     var username=$("#User").val();  

5.     //组合成对象的形式  

6.     var queryString={user:username};  

7.     return queryString;  

8.     }  

9. function startCheck(oInput){  

10.     //首先判断是否有输入,没有输入直接返回,并提示  

11.     if(!oInput.value){  

12.         oInput.focus(); //聚焦到用户名的输入框  

13.         document.getElementById("UserResult").innerHTML = "User cannot be empty.";  

14.         return;  

15.     }  

16.     oInput=$.trim(oInput.value); //使用jQuery$.trim()方法过滤左右空格  

17.     $.get("action.asp",createQueryString(),  

18.         function(data){  

19.             $("#UserResult").html(data);  

20.     });  

21. }  

22. </script>

必要说明:

1、对$.trim()$("#UserResult")htmlval()jQuery语法不理解的,可以参考jQuery中文手册。本站提供下载。

2、自定义函数createQueryString(),是对传入“处理页”的参数,进行处理。一种常规的方法。

3、因为是以get方式处理,说明这里不需要进行编码和解码。下面以post方式处理,则需要编码和解码了,代码如下

1. function createQueryString(){  

2.     //使用encodeURI()编码解决中文乱码问题  

3.     var username=encodeURI($("#User").val());  

4.     //组合成对象的形式  

5.     var queryString={user:username};  

6.     return queryString;  

7.     }  

8. function startCheck(oInput){  

9.     //首先判断是否有输入,没有输入直接返回,并提示  

10.     if(!oInput.value){  

11.         oInput.focus(); //聚焦到用户名的输入框  

12.         document.getElementById("UserResult").innerHTML = "User cannot be empty.";  

13.         return;  

14.     }  

15.     oInput=$.trim(oInput.value); //使用jQuery$.trim()方法过滤左右空格  

16.     $.post("action.asp",createQueryString(),  

17.         function(data){  

18.             $("#UserResult").html(decodeURI(data));  

19.     });  

20. }  

21. </script>

 

第三、使用$.ajax()方法

 

语法说明:尽管load()$.get()$.post()非常方便实用,但却不能控制错误和很多交互的细节,可以说这3种方法对Ajax的可控性较差。jQuery提供了一个强大的函数$.ajax(options)来设置Ajax访问服务器的各个细节,它的语法十分简单,就是设置Ajax的各个选项,然后指定相应的值。“可自动校验表单”实例代码如下:

1. <script language="javascript" src="jquery.min.js"></script>  

2. <script language="javascript">  

3. function createQueryString(){  

4.    //使用encodeURI()编码解决中文乱码问题  

5.     var username=encodeURI($("#User").val());  

6.     //组合成对象的形式  

7.     var queryString={user:username};  

8.     return queryString;  

9. }  

10. function startCheck(oInput){  

11.     //首先判断是否有输入,没有输入直接返回,并提示  

12.     if(!oInput.value){  

13.     oInput.focus(); //聚焦到用户名的输入框  

14.     document.getElementById("UserResult").innerHTML = "User cannot be empty.";  

15.     return;  

16.     }  

17.     oInput=$.trim(oInput.value); //使用jQuery$.trim()方法过滤左右空格  

18.     $.ajax({  

19.         type: "GET",  

20.         url: "action.asp",  

21.         data: createQueryString(),  

22.         success: function(data){  

23.             $("#UserResult").html(decodeURI(data));  

24.         }  

25.     });  

26. }  

27. </script>

必要说明:

1、代码基本同上,只是$.ajax(options)稍有不同,对于其参数不理解可以参考jQuery中文手册。

2、给个建议,无论是get方式还是post方式,都习惯进行编码,以防出现中文乱码的问题。

3、再强调一下,无论使用哪种程序,如果遇到问题了,都可以参考相关的手册说明,这是建站所必需的。

上面的实例使用了jQueryload()方法、$.get()$.post()$.ajax()4种方法,都要考虑中文乱码的问题,下面推荐一个方法,进一步简化jQuery代码,呵呵。

 

第四、表单插件

 

表单插件(Form Plugin)是一款功能非常强大的插件,在jQuery官方网站上目前为4星级推荐,下载后为jquery.form.js文件。该插件提供获取表单数据、重置表单项目、使用Ajax提交数据等一系列功能,深受开发人员的喜爱。使用表单插件,再次重写“表单校验实例”,完整代码如下:

1. <form id="myform" action="action.asp">  

2. 用户昵称:<input type="text" onblur="startCheck(this)" name="User" id="User"><input type="button" value=" " class="button"><span id="UserResult"></span><br />  

3. 输入密码:<input type="password" name="passwd1"><br />  

4. 确认密码:</td><td><input type="password" name="passwd2"><br /><br />  

5. <input type="submit" value="注册" class="button"><input type="reset" value="重置" class="button">  

6. </form>

HTML框架加了一个“检查”的按钮(使用手动校验的方法)jQuery如下:

1. <script language="javascript" src="jquery.min.js"></script>  

2. <script language="javascript" src="jquery.form.js"></script>  

3. <script language="javascript">  

4. function startCheck(oInput){  

5.     //首先判断是否有输入,没有输入直接返回,并提示  

6.     if(!oInput.value){  

7.         oInput.focus(); //聚焦到用户名的输入框  

8.         document.getElementById("UserResult").innerHTML = "User cannot be empty.";  

9.         return;  

10.     }  

11. }  

12. $(function(){  

13.     $("input[type=button]").click(function(){  

14.         var options={  

15.             target: "#UserResult"  

16.         };  

17.         //表单的Ajax  

18.         $("#myform").ajaxSubmit(options);  

19.     });  

20. });  

21. </script>

必要说明:

 

1、使用表单插件,必须加载jquery.form.js文件。

 

2、按Ajax方式提交数据,可以使用表单插件的ajaxSubmit(options)来按照Ajax的方式直接提交表单或者使用ajaxform(options)方法,通常在页面加载完成时执行,用来将表单统一Ajax化,并且提交表单依然使用传统的submit按钮,只不过进行的是Ajax提交。其中参数options$.ajax(options)的参数基本相同。

   您正在看的文章来自疯狂软件教育中心 www.fkjava.org

   信息咨询:Q564205990               星老师

posted @ 2012-09-22 11:22 疯狂软件 阅读(986) | 评论 (0)编辑 收藏

Java中常见的违规编码

 

 一、Eclipse编译器提供源代码格式输入

    Eclipse提供自动源码格式选项,并且组织输入(删除未使用的代码)。你可以使用下面的这些快捷键进行操作。

    Ctrl + Shift + F--源代码格式

    Ctrl + Shift + O--组织输入并删除未使用的代码

    代替手动调用这两个函数,只需根据Eclipse自动格式和自动组织选项,可以随时保存文件。

    操作步骤,在Eclipse中进入Window -> Preferences -> Java -> Editor -> Save Actions,然后以选定的方式保存,最后检查Format source code + Organize imports.

    二、避免多个返回(退出点)

    依照你的方法,确保只有一个退出点。不要在同一个地方或多个地方使用返回。比如,下面的代码,NOT RECOMMENDED(不建议),这是因为有多个退出点(返回语句)。

    1.private boolean isEligibleint age{

    2. ifage > 18{

    3.    return true;

    4. }else{

    5.    return false;

    6. }

    7.}

    下面的代码有所提升,这是更高版本的。

    1.private boolean isEligibleint age{

    2. boolean result;

    3. ifage > 18{

    4.    result = true;

    5. }else{

    6.    result = false;

   7. }

    8. return result;

    9.}

三、简化if-else

    我写了几个实用的方法作为参考,检查语句条件并且基于该条件返回值。比如,考虑到isEligible方法,正如你之前所看到的:

    1.private boolean isEligibleint age{

    2. boolean result;

    3. ifage > 18{

    4.    result = true;

    5. }else{

    6.    result = false;

    7. }

    8. return result;

    9.}

    整个方法以一个单一的return语句重新编写:

    1.private boolean isEligibleint age{

    2.3.return age > 18;

    4.5.}

    四、不要给Boolean, Integer或者String创建新的实例

    避免给Boolean,Integer,String创建新的实例。比如,使用new Booleantrue),Boolean,valueOftrue)。修改后的语句与之前的效果基本相同,除了在性能上有所提升。

    五、使用大括号模块语句

    永远别忘了使用大括号模块语句比如ifforwhile.这样做的好处是当你在修改模块级语句时减少了模糊代码并且避免引进bug的机会。

    不建议:

    1.ifage > 18

    2. result = true;

    3.else

    4. result = false;

    建议:

    1.ifage > 18{

    2. result = true;

    3.}else{

    4. result = false;

    5.}

    六、以final类型标记方法参数,任何时候都适用

    请记住,以final类型标记方法参数,任何时候都适用。这样做的好处在于当你不小心修改参数值时,编译器会给你警告,同时它还能以更好的方式优化编译器代码字节。

    建议:

    private boolean isEligiblefinal int age{ }

    七、在UPPERCASE中命名public static final字段

    UPPERCASE中命名public static final字段(通常也被称之为常量)。这个可以让你轻松区分常量字段和局部变量之间的不同。

    不建议:

    public static final String testAccountNo = "12345678";

    建议:

    public static final String TEST_ACCOUNT_NO = "12345678";,

    八、组合成单一的if语句

    在尽可能多的情况下,把多个if语句组合成单一的if语句,比如下面的代码:

    1.ifage > 18{

    2. if voted == false{

    3.    // eligible to vote.

    4. }

    5.}

    合并成单一的if语句:

    1.ifage > 18 && !voted{

    2. // eligible to vote

    3.}

    九、Switch应该有default

    始终给Switch语句添加default.

    十、使用常量来避免重复定义相同的字符串值

    如果你在多个地方必须使用字符串,那么使用常量来避免重复定义拥有相同值的字符串。

    比如,看下面的代码:

    1.private void someMethod(){

    2. logger.log"My Application" + e);

    3. …

    4. …

    5. logger.log"My Application" + f);

    6.}

    string literal"我的应用"可以作为常量并且能在代码中使用。

    1.public static final String MY_APP = "My Application";

    2.

    3.private void someMethod(){

    4. logger.logMY_APP + e);

    5. …

    6. …

    7. logger.logMY_APP + f);

8.}

    您正在看的文章来自疯狂软件教育中心 www.fkjava.org

    信息咨询:Q564205990               星老师

posted @ 2012-09-21 14:45 疯狂软件 阅读(182) | 评论 (0)编辑 收藏

 

2012年中国移动互联网大会上,欧朋浏览器总经理宋麟在名为“移动互联网的未来”的主题演讲中表示,新一代网络标准HTML5对于移动浏览器性能和用户体验的提升有重要意义,虽然目前国内HTML5存在一定虚火,但最晚到明年年中HTML5技术会趋向成熟。伴随着HTML5标准的普及,或将带来整个浏览器行业的重新洗牌。

  “HTML5作为一个技术而言,是最符合互联网精神的一项技术。”宋麟说。作为一个开放的网络标准,HTML5具有跨平台、多设备、及时更新等多项优势,在统一的HTML5标准下,移动浏览器可以在不同平台、不同设备上实现一致的用户体验。对开发者和用户而言,HTML5都能带来极大便利;同时,HTML5的开放性使其不会被任何一家企业垄断,有利于促进整个行业的良性发展。

  虽然HTML5目前存在性能不够完善、盈利模式不清晰等许多争议,但宋麟认为HTML5与移动互联网的未来密切相关,伴随HTML5技术标准的成熟,移动浏览器将更好地承担平台的功能。

  从去年年底到今年年中,国内主流移动浏览器厂商先后推出支持HTML5标准的产品,并展开在HTML5跑分上的比拼。“现阶段HTML5在国内有点被过度吹捧。”宋麟认为,“主要表现在目前HTML5技术无论是用户体验还是性能支持上都还不是十分成熟。”作为HTML5标准的发明人,Opera欧朋与全球其他领先企业都把HTML5研发作为现阶段的重点,预计到明年年中,HTML5标准将得到初步的普及。

谈及HTML5标准普及对移动互联网市场竞争带来的影响,宋麟认为HTML5既是全行业的机会,也会对现有市场格局带来冲击。“变局中有人会跑赢,也会有被淘汰。”宋麟表示。         您正在看的文章来自疯狂软件教育中心 www.fkjava.org

信息咨询:Q564205990              星老师

posted @ 2012-09-20 11:26 疯狂软件 阅读(168) | 评论 (0)编辑 收藏

 最近,经过几次课,算是复习,也算是学习吧。修补了一些,以前自学时的漏洞,熟悉了一些关于JAVA的基础知识。以下是,这几天的一个简单的总结。

1.Java的环境JDK(Java development Kit)

Sun公司http//www.oracle.com的网页上有各种版本的Jdk,供用户下载使用。安装jdk后,一定要修改环境变量。就实际上而言,说修改不如说是添加环境变量。最后进入cmd界面验证JDK首安装成功!若安装不成功,oracle公司的网页上也有一些列的解决方案。

2.Java的类名

Java是大小写敏感的一种语言,只能以字母开头,可以含有下划线和数字,不能使用关键字和保留字。

Java 关键字列表 (依字母排序 51):

abstract, assert,boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum,extends, final, finally, float, for, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while

Java 保留字列表 (依字母排序 14) : Java保留字是指现有Java版本尚未使用 但以后版本可能会作为关键字使用。

byValue, cast, false, future, generic, inner, operator, outer, rest, true, var goto const,null

类名在使用中习惯将每个单词首字母大写。且于文件名相同。

3.Java的数据类型

一般而言,Java的数据类型可分为基本类型和引用类型

基本类型:

boolean 布尔值,作二元判断 true, false

byte 8位有符号整数 最小值-128,最大值127

short 16位有符号整数 最小值-32768,最大值32767

int 32位有符号整数 最小值-2147483648,最大值2147483647

long 64位有符号整数 最小值-9223372036854775808,最大值 9223372036854775807

float 32位浮点数 1.4E-45~3.4028235E38

double 64位浮点数 4.9E-324~1.7976931348623157E308

char 16Unicode字符 不适用

基本类型(Primitive Types)也称作内置类型,是其他类型的基础。所有的其他类型(包括Java核心库和用户自定义类型)都是通过基本类型扩展而来的。这些类型是我们描述对象最基本的方式。比如:判断是否使用boolean;衡量大小、长度使用各种整型(包括short, int, long)和浮点数(floatdouble);表达字符使用char;而处理二进制数据块使用byte

引用类型

有数组和对象,究其根本数组也是对象

最后不得不提一下String

String s="abc";//s不为对象

String s=new String("abc");//s为一个对象

4.对象与类

类:类似于生物界的门纲目科属种的分类,在Java语言中,只有类这个概念,而可以通过父类和子类的方式来表达这种层次家哪的关系。比如,我们可以说食物是一个类,而面食就是一个子类。

对象:就像是一个类的一个实例,比如我们说电脑,这就是一个类,泛指电脑这类东西,而我们说,这台电脑,这就是一个实例了,就是一个对象。当然,类也可以是看不见摸不着的东西,比如说语言就是一个类,而中国普通话就是一个对象。

类名 对象名=new 类名();//实例化对象的格式

总之,类相当于一个概念,而类就是这个概念下的一个实体。

5.参数传递

Java中参数传递的方式和C中一样,可分为两类:值传递和引用传递

值传递

int a=10;//定义一个变量

fun b=new fun();//假设已有一个类为fun,实例化一个对象b;

b.function(a);//a的值传递给b的方法

值传递中,只会传递原有变量的值,传递之后,会有一块新的你内存存储变量值,其后的一切动作均与原来变量无关。

引用传递

fun f1=new fun();//实例化一个对象b

fun f2=new fun();//实例化一个对象b

f1=f2;//f2的值赋给f1

引用传递中f1f2相当于C中指针,分别指向一个对象的首地址。f1=f2则是将f2指向的地址赋给f1。传递了一个地址。

6.构造方法

构造方法是在实例化对象时,由系统自动运行的函数,且只运行一次。每一个对象均有其构造方法,系统自动为类配有一个无参的构造方法,若程序员自己写有构造方法,则系统的构造方法失效。

7.方法的重载

public class student{

public void student(){};

public void student(Book book){};

public void student(Book book,Computer computer){};

}

这里有三个方法的名字相同,可是他们却可以执行不用的功能,只要参数的个数,类型,次序不同就可以写出一个新的名字相同的方法。这就是一种重载,当然前面所提到的构造方法,也可以重载。

8.this关键字

public class student{

String name;

public void setName(String name){

this.name=name;

}

}

这里的this关键字就指向类的头。不同的类的this关键字指向自身的头。

   您正在看的文章来自疯狂软件教育中心 www.fkjava.org

   信息咨询:Q   564205990           星老师

posted @ 2012-09-18 15:49 疯狂软件 阅读(196) | 评论 (0)编辑 收藏

 

package sy;

 

import java.awt.Color;

import java.awt.Graphics;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

 

import javax.imageio.ImageIO;

import javax.swing.BorderFactory;

import javax.swing.JPanel;

 

public class PanelTest extends JPanel {

public BufferedImage image;

   @Override

protected void paintComponent(Graphics g) {

// TODO Auto-generated method stub

super.paintComponent(g);

BufferedImage subImage=this.image.getSubimage(30, 30, 100, 100);

g.drawImage(subImage,100,100,100,100,null);

int color_point=subImage.getRGB(24, 4);

        Color color=new Color(color_point);

        System.out.println(color_point);

        System.out.print(color.getGreen());

}

   public PanelTest()

   {

   try {

this.image=ImageIO.read(new File("D:/black.jpg"));

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

   this.setSize(300, 200);

   this.setLocation(100, 100);

   this.setBorder(BorderFactory.createTitledBorder("title"));

 // repaint();

   }

}

posted @ 2012-09-17 17:19 疯狂软件 阅读(1776) | 评论 (0)编辑 收藏