学习java心得体会

2022-09-21

心得体会是我们接触事物产生的思想,也是我们明确自身发展目标的重要方式。如何结合自身的成长情况,写出勉励自身成长的心得体会呢?今天小编给大家找来了《学习java心得体会》,供需要的小伙伴们查阅,希望能够帮助到大家。

第一篇:学习java心得体会

java学习心得

怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西:

首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition,我们经常说到的JDK,就主要指的这个,它是三者的基础,属于桌面级应用开发,这部分如果学得好很容易拓展J2EE和J2ME。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手机,PDA等等。J2EE,Java 2 Platform,Enterprise Edition,就是所谓的企业级Java,适合企业的大型应用开发。

J2SE:

新手最初学习的时候先要从J2SE开始学起,所包含的内容主要分为:面向对象概念的理解、Java基本语法的学习,Java桌面图形界面应用程序的开发,掌握常用的Java API等(关键是要学会怎样查阅)。

重点:Java基本语法(循环结构,数据类型,数组,运算符等)、Swing,awt,事件机制、文件输入输出流处理等

难点:面向对象思想的理解(接口、类等)、线程、socket网络编程等

视频教程推荐:孙鑫的Java基础视频教程、张孝祥的Java基础视频教程,讲的都很细,而且这两位老师在教学方面都有很好的经验。

J2EE:

在学习了J2SE之后,你可以尝试着慢慢过渡到J2EE,当然,学习J2EE海需要很多非JAVA技术的支撑,比如数据库技术,网页编程技术等等,待会我会详细介绍这两方面的内容。J2EE有三个必学的框架,如果你说你学了J2EE,但又不会这三个框架的话,那会让人笑掉大牙,这三个框架分别是Struts、Spring和Hibernate,虽然这三个框架应用很广,但不代表这三个框架就代表了J2EE,J2EE还有很多其他的东西,比如EJB,作为一款重量级(此重量级不是指重量级选手那个意思,此重量级非彼重量级)框架,虽然这个应用慢慢的再被其他框架所取代,但EJB3.0的出现也给它带回一些生机,作为一个分布式应用的框架,也是大家要去学习和了解的知识。

当然,刚才说到J2EE包含的范围很广,即使我把我所了解的所有技术说出来,也并不能代表J2EE,这是一个很深很广的学问,需要大家以后再工作的时候慢慢去发现了。我所了解的还包括:

JDBC:Java数据库连接对象,基础中的基础,Hibernate也只是对它的封装而已 JNDI: Java 命名与目录接口,J2EE重要规范之一

EJBS: 上面已经提到过了

RMI: 提供远程调用方法的支持,主要用于程序分布式开发

JMS: Java消息服务,中间件技术

JAVA IDL: 提供J2EE平台与CORBA交互能力和互联能力的技术

JTS: 组件事务监视器

JTA: 事务划分的一个技术

JAVAMAIL: Java中的邮件技术

JAF: Java启动框架,没研究过

Log4j,一款日志处理的框架应用

Junit:单元测试的好帮手

freemarker、velocity:两款不错的模板引擎

与Flash的交互Flex:目前很多的SNS应用就是使用到了这个技术

Web services:想知道我们论坛天气预报的效果是怎么做的吗?请关注这个技术

SOA:面向服务架构,未来技术发展的趋势之一

……

不过前面介绍到得这些都不是J2EE的基础,是属于框架应用级别的.要真正把上面说到的知识掌握好,还是的学习J2EE最核心的东西:JDBC、JSP、servlet和JavaBean,后面三个也是学习SSH的基础(StrutsSpringHibernate的简称).鉴于J2EE的内容太过复杂,建议大家最初只学习: JSP, servlet和JavaBean,等这个基础掌握好再把SSH学习了,再对其他J2EE技术有个大致的了解就可以出去找工作了。当然,找工作的前提除了把Java学习好,还会有一些其他的技术也是必须要掌握的。

-_- 我很简单,Java却要求我学这么多复杂的东西。除了这些技术的东西,在这阶段,大家更多的是会接触到比如设计模式的东西,比如工厂模式、桥梁模式、单例模式等等,还要学习建模思想(比如UML建模等等)和软件生命周期等等。这些是升华大家编程思想的手段和途径。

数据库技术:

数据库几乎是程序中不可或缺的一部分,在整个软件开发中更是占据了重要作用.数据库在整个软件中扮演的是地基的角色,你要修房子,就要先打好地基,你要做软件,就要先设计好的数据库.目前数据库几乎都是关系型数据库,代表的有:

SQL Server,目前最新的好像是2008,我不是很喜欢追赶时髦,用的还是2005,不过也很不错了,在此之前还有2000.

MySQL,最知名的开源数据库之一,我很喜欢它的小巧耐用,学过SQL SERVER数据库再学它,无师自通,易如反掌.

ORACLE.甲骨文公司的产品,大型数据库,正版的一般公司买不起.只有看看了,不过现在Java

开发60%都是会使用到这个数据库,再加上现在甲骨文已经把sun公司收购了,JAVA和ORACLE得关系更加暧昧,各位得多花些时间在这上面了.

除了这些,你还应该了解一些桌面应用软件开发用到的数据库,比如说sqlite。你在制作安装程序的时候可以把这个数据库打包进你的安装程序。

网页编程基础:

网页编程基础要学的内容也比较多,但主要集中在以下这三个技术之上,大家每天看的各种样式的网页都是它们呈现的:

HTML:超文本标记语言

CSS:层叠样式表

Javascript:浏览器客户端脚本语言

现在更是流行各种JavaScript库,比如:Jquery、ExtJs等,你要是会其中的某一个库的使用,找工作so easy。

J2ME:

如果你在学习了以上技术还不过瘾,可以再学习手机程序的开发,就我个人看来,开发手机程序技术其实蛮简单的,难点在于优化,比如怎么让你写的程序尽量的节约手机资源,“代码诚可贵,手机价更高“,所以不得不比PC机多考虑很多成本和实用性问题。J2ME的学习的话,切忌不要单纯的再模拟器上测试,一定要找真机测试,真机和模拟器的效果之间差别是很大的。更多手机开发技术,有兴趣的朋友可以和我一起探讨。

开发工具:

开发工具的选择主要还是看大家的习惯,我个人比较喜欢使用eclispe,功能很强大,也很好拓展其他的功能。当让初学你也可以选择JCreator,或者最好就直接用记事本。等你熟悉了Java代码之后,就可以使用JBuilder、eclispe或者netbeans这一类的工具了。

先说到这里先,以后大家一起完善这个帖子。尽量再给大家整理一些学习的资源在这里。也欢迎大家一起整理我文章中提到的一些技术资源和开发工具。最后,再和大家分享一句话:生命欣欣向荣,唯奋斗不息。也和大家分享一幅Java学习路线图:

第二篇:JAVA学习的心得体会

国家队每一次踢球失败后都要说这么一句:我们回去后要好好总结,下次会打得更好!

总结不代表就能改过原有的不足,也不代表就能进步了

(一)充分利用MSDN因为我个人觉得它胜过任何一本编程参考书

MSDN是 Microsoft 当前提供的有关编程信息的最全面的资源,它包含微软最新的技术数据库,加上易学易用的全文检索功能,让您迅速找到任何您需要的技术参考数据

(二)加强自我管理,善于作自我总结,分析自已的优点及缺点

中国境内百分之八十以上的领导人在百分之八十以上的场合的讲话中都有类似的观点,所以在这里我是不多说了,反正这一条用在什么行业什么地方都不会有错的,人生最大的敌人不是就是自已吗?管好自已认清自已,那还有什么搞不定的?

(三)养成良好的文档习惯

良好的文档是正规研发流程中非常重要的环节,一个好的程序是先写好设计文档再进行编程的,在设计文档的指导下,才能写出安全的代码。如果你不写文档,一开始就写程序,这样你就不会按已设计好的路线走,而是想到哪写到哪。小功能还好说,要是大功能,就容易混乱甚至失控.那么如何写文档呢?其实我认为没有统一的标准,虽然国家及一些NB的人总结了很多的模板,但每个人的习惯不同,如果你不加以修改或创新,就套用某个标准,我相信写起来会很吃力及说不清的难受,因此我觉得只要能将你的设计思想及实现算法或步骤描述清楚就是好的文档,我强烈建议广大程序员朋友们在写文档时要善于用图表来说明你的思想,我们不是作家,也可能作文都经常性地不及格,写出五官端正的文章对我们来说可能不容易啊!好好地利用VISIO,ROSE或别的工具来表达你的思想吧!

(五)代码风格要规范,严谨,效率要高。 (六)掌握好跟踪调试技巧. 跟踪调试程序是一件繁琐而又复杂的事情,所以掌握必要的调试策略及技巧却可以使这些工作变得轻松起来.强烈建议你去看一下老美Everett N.McKay及Mike Wooding写的书<>,你一定受益匪浅.

(七)养成自我测试的习惯

测试工作应由测试工程师来做,但在你写完一个模块或一个软件时,还是要自已先测试一下,保证不要出现一些低级的错误.

(八)善于交流善于沟通,特别是经常与一些高手交流一下学习的心得体会

有人说,程序员的性格大多内向不喜欢说话,其实是有些误会了,不是不喜欢而是话不投机,我的脑袋一天到晚都在不停地转,函数,数据,算法啊充满了我的世界,我那还有时间与你谈一些无聊的话题,话要找对人了,才容易谈下去,书上说过"听君一席话,胜读十年书",你要找的就是这种豁然开朗!

(九)阶段性地做一下专题总结

知识要温故而知新,因此我程序员要养成阶段性地做专题总结的习惯,比如你这个月学习或在做与多线程有关的模块或项目,那么在你做完后,你就可以好好地总结一下所有与多线程相关的技术,包括理论知识,实践方法以及各种技巧及优秀文章等等,这对你各种能力的提高将有很大的帮助,你试过了吗,如果没有,那就快点行动吧!

(十)要有持之以恒的精神

我只是想说明要学好任何一门技术,最好要有持之以恒精益求精的精神,特别是学一些比较抽象比较难的技术,除了思考一下你的学习方法以外,还必须坚定你的目标及信念!

第三篇:学习java的心得体会

1.我感觉学习java应该是循环渐进,有始有终,按部就班,脚踏实地.java是一门有着阶梯性的一们语言,如果要学习它.我觉得最好还是按照java的学习体系,先学习什么,在学习什么,只有这样,我们在学习中才会遇到更少的麻烦.java是一门更倾向于网络的语言.不要上来就学习JSP,这样不好,因为这没有基础.在以后的学习中很可能遇到很多的麻烦,这就不好了.

2.信心,恒心,毅力是最重要的.这是我们必须具备的心理素质.要是学习这门语言开始的时候很有兴趣,遇到苦难就退缩,这样最终会放弃学习java,没有经历风雨怎么见彩虹.编程就是有的时候就是那么这么人.会遇到很多的困惑.但是一旦你弄懂了,或者是你把问题解决了,你会感到很兴奋,编程的快乐就在此 了.呵呵^^

3.多看看一些资料,多多的向高手请教,这样才好.要学会总结和领会.^^^^^^^^^^,当然,学习java一个人有一个人的想法,也有自己的独特学习方法.总之适合自己的就是最好的,你说呢这位朋友?关于方法,还有很多,我就不在这里说了. 为什么会选修java

首要原因就是为了以后大学毕业后能找到一个好工作,放眼望去当今大部分公司只会要求两种夜宴c++和java,其他有一些公司也可能会要其他的语言,但最终的结果是你会回到这两类上。

第四篇:java论文 学习心得 图形界面

java图形化用户界面及Applet学习总结

一、javaApplet Application和Applet是Java程序的两种基本形式。

Applet是特殊的Java程序,它不需要专门的解释器来执行它,相对于Java Appliction的解释器,如JDK的java.exe,VJ++的jview.exe,Java Applet的解释器就是Internet的浏览器,确切地讲就是兼容Java的Internet浏览器。

Applet的工作原理:

1,.class和HTML保存在服务器

2,当浏览器向服务器请求下载嵌入了Applet的HTML文件时。

3,下载到客户端后,由浏览器解释HTML中的各种标记并显示在用户屏幕上,当浏览器遇到HTML文件中的一个特殊标记时,表明嵌有Applet程序,浏览器会根据Applet名字和位置把其字节码文件从WWW服务器上下载到本地。

4,利用浏览器本身拥有的Java解释器执行该字节码。

Applet类的使用:

Java Applet程序必须有一个主类,其父类是系统的Applet类,正是通过这个类才能完成Applet程序与浏览器的配合

存在于java.applet包中,从继承结构上说属于用户图形界面的java.awt包,是系统类java.awt.Panel的子类,由于Applet类的特殊,系统专门为它建立了一个java.applet包

Applet类是Panel的子类

Panel类的作用:

(1)包容和排列其他的界面元素,如按钮、对话框等;

(2)响应它所包容范围之内的事件,或把事件向更高层次传递。

Applet类的作用:

Applet在继承上述作用的基础上,还具有一些与浏览器和Applet 生命周期有关的专门方法

Applet类的主要方法:

1、完成初始化操作的init()方法

Applet的字节码文件从WWW服务器下载后,浏览器将自动创建一个Applet类的实例并调用它从Applet类那里继承来的init()方法。用户程序可以重载父类的init()方法,定义一些必要的初始化操作。

2、启动浏览器运行Applet的start()方法

Start()方法在init()初始化之后被自动调用,或者是Applet被重新启动时被系统自动调用。也就是说,当包含Applet的HTML页面被重新加载时,Applet实例就会被重新启动并调用start()方法,但是init()方法只被调用一次。

3、显示Applet界面的paint()方法

paint()方法的主要作用是在Applet的界面中显示文字、图形和其他界面元素。导致调用paint()方法的事件主要有三种:

1、Applet被启动之后

2、Applet 所在的浏览器窗口改变,包括大小、移动、被遮挡、重新显示等。

3、Applet的其他相关方法被调用,如repaint() paint()方法有一个固定的参数----Graphics类的对象g。

4、暂停Applet前执行的stop()方法

stop()方法类似于start()方法的逆操作,当用户暂停Applet之前,浏览器将首先自动调用stop()方法(例如用户转去查看其它网页)。用户可以重载Applet类的stop()方法。

5、消灭Applet之前执行的destroy()方法

当用户退出浏览器时,浏览器会自动调用此方法来完成一些释放资源、关闭连接之类的操作。

Applet与HTML文件的配合

在HTML中嵌入Applet的标记为

例如:

此标记至少需包括三个参数:

Code: 指明Applet字节码文件名

Height: 指明Applet界面占据的区域的高度,以像素为单位

Width: 指明宽度,以像素为单位 width= "500" height= "300"> 其他可选的参数: Codebase:当Applet文件与HTML文档不在同一目录时, 使用codebase来指明字节码文件的位置,这个位置使用URL格式

Alt: 当浏览器因某种原因不能执行字节码文件时,就把alt参数指明的信息显示给用户

align:表示Applet界面区域在浏览器窗口中的对齐情况

向applet传递参数

通过HTML文件的标记,applet可以从中获得所要的参数,使用方法为:

value= 参数值

> ……

在Applet中利用getParameter()方法来获取HTML传递来的参数,这个方法有一个字符串参数,表明它所希望获取的HTML参数的名字(即name指定的参数名),方法的返回值是一个字符串对象,即HTML中value指定的字符串。如果用户希望这个参数是其他类型,则要进行参数类型的转换

二、java图形化界面

图形化界面(graphics user interface ,GUI)使用图形形式,借助于窗口中的菜单。按钮等界面元素和鼠标元素,实现用户与计算机系统的交互作用。用户通过图形界面向计算机发布指令、控制操作,系统的运行结果也以图形界面方式显示给用户。图形用户界面生动形象、操作方便,深受广大用户的欢迎。

图形用户界面(GUI)的重要性:美观、易用、统一

为方便用户界面的开发,设计了专门的类库来生成各种标准图形界面元素,和处理图形界面的各种事件,这个类库就是java.awt包。AWT是abstract windows toolkit(抽象窗口工具集)的缩写。AWT类库中的各种操作被定义成在一个并不存在的“抽象窗口”中进行,使得开发人员所设计的界面独立于具体的界面实现,可以适用于所有的平台。

java的GUI编程 (Graphic User Interface,图形用户接口),是在它的抽象窗口工具箱(Abstract Window Toolkit,AWT)上实现的,java.awt是AWT的工具类库,其中包括了丰富的图形、用户界面元件和布局管理器的支持。 构成图形界面的元素和成分可分为三类:

容器:用来组织其它界面成分和元素的单元(如窗口)。容器内包含的成分和元素可能又是一个容器(层层相套)

控制组件:是图形用户界面的最小单位之一,它里面不再包含其他的成分。

目前常用的控制组件有:

选择类的:复选框Checkbox、单选按钮CheckboxGroup,下拉列表List;

文字处理类的:文本框TextField、文本区域TextArea;

命令类的:按钮Button、菜单Menu等。

用户自定义成分:它不能被系统识别和承认,通常只能起到装饰、美化作用,而不能响应用户的动作,也不具有交互功能。

显示图像

Graphics类的

drawImage(URL地址,文件名)方法可显示图像.bmp 、.gif 、.jpeg、.png。

Image类

图像文件的URL:

URL picurl= new URL

(“http://xxx.yyy.edu/Applet/img1.gif”); 取一幅图像构成图像对象

Image img1 = getImage(picurl);

Image img2 =

getImage(getCodeBase(), “img2.gif”); 显示一幅图像:

g.drawImage(img1, x, y, this);

g.drawImage(img1, x, y,Color.red, this); g.drawImage(image1, x, y,x2,y2, this);

g.drawImage(image1, x, y,x2,y2,Color.red, this); 使用AWT控件

在AWT的概念中,窗口系统所显示的各种对象统称为控件:Button,Menu,List等等都是控件。

Java控件: 标签Label 按扭Buuton 选项框Choice 复选框和选项按扭Checkbox 列表框List 文本框TextField 文本区TextArea 滚动条Scrolbar 标签Label 构造函数

Label();构造一个空的标签,不显示任何内容。

Label(String label);构造一个显示内容为label的标签。

Label(String label, int alignment);

常用方法:getText(),setText()

请编写一个Applet,其功能为:在标签上输出字符串"Java程序"。要求标签以红色为背景,以白色为前景。

import java.applet.Applet; import java.awt.*; public class Applet1 extends Applet {

} 按扭Buuton 构造函数 Label p=new Label("

Java 程序

"); public void init( ) {

} add(p); p.setBackground(Color.red); p.setForeground(Color.white); Button() 创建一个没有标签的按钮。

Button(String label)

常用方法:

getLable()、setLabel()、addActionListener(ActionListener)、removeActionListener(ActionListener)

编写Applet, 其中包含两个按钮:按钮上的文本分别为"确定"和"取消"。当按下"确定"键时,通过paint()方法在(20,100)位置处,用兰色显示你按下"确定"按钮的次数;当按下的键是"取消"时,通过paint()方法在(20,120)位置处,用红色显示你按下"取消"按钮的次数。(要求"确定"和"取消"的次数同时显示在Applet中。)

import java.awt.*; import java .awt .event .*; import java.applet.*; public class Applet1 extends Applet implements ActionListener

{

int i1,i2; Button btn1,btn2; public void init() {

} public void paint(Graphics g) { g.setColor(Color.blue); i1=0; i2=0; btn1=new Button("确定"); btn2=new Button("取消"); add(btn1); add(btn2); btn1.addActionListener(this); btn2.addActionListener(this);

}

} g.drawString("你点击了"确定""+i1+"次",20,100); g.setColor(Color.red); g.drawString("你点击了"取消""+i2+"次",20,120);

public void actionPerformed(ActionEvent e) {

} if(e.getSource()==btn1) { i1++; } if(e.getSource()==btn2) { i2++; } repaint(); 文本框TextField 因为只允许有一行,所以当按下Enter或Return键时,ActionListener可以通过actionPerformed()知道这个事件。如果需要,还可以增加其他的组件监听者。

除了注册一个ActionListener,你还可以注册一个TextListener来接收关于个别击键的通知。它的回调方法是textValueChanged(TextEvent)。

请编写一个Applet实现如下功能:接受文本框输入的一个正整数,求该数的平方根,并在标签上输出。

import java.applet.*; import java.awt.*; import java.awt.event.*; public class Applet1 extends Applet implements ActionListener {

Label

out, p;

TextField

in;

int x;

public void init( )

{

p=new

Label("请输入一个int型正整数: ");

out=new Label("

");

in=new TextField(8);

add(p);

add(in);

in.addActionListener(this);

add(out);

} public void actionPerformed(ActionEvent evt)

{

x=Integer.parseInt(in.getText());

out.setText(" "+x+"的平方根: "+Math.sqrt(x));

} } 滚动条Scrolbar 滚动面板提供了一种不能作为自由窗口的通用容器。它应当总是和一个容器相关联(例如,框架)。它提供了到一个更大的区域的视窗以及操纵这个视窗的滚动条。

画布Canvas 画布(Canvas)是一个可以在上面绘画的简单矩形背景组件,在画布里可以像Applet一样绘制图形 ,也可以直接用鼠标在上面操作。Canvas继承于Component类,有自己的Paint()方法,能响应鼠标和键盘事件。

创建

Canvas myCanvas = new Canvas(); 常用方法

setSize();

public void paint(Graphics g)

例:

import java.awt.*; import java.applet.*; class Mycan extends Canvas {

Mycan()

{

setSize(150,150);

setBackground(Color.blue);

}

public void paint(Graphics g)

} public class Canvas1 extends Applet

{

Mycan c;

public void init()

{

c=new Mycan();

add(c);

} } // 键盘事件KeyEvent 主要方法

char getKeyChar()

返回引发事件的按键的Unicode字符

String getKeyText() {

} g.setColor(Color.white); g.fillOval(50,50,50,50); g.setColor(Color.blue); g.drawString("canvas", 55,75);

返回按键的文本内容

例:编写Applet, 当按下的键盘键时,在Applet中通过paint()方法,在(25,20)位置处显示"你好!",释放该键时显示"再见!"。

public class Applet1 extends Applet implements KeyListener {

String s; int i; public void init(){ addKeyListener(this);

}

public void paint(Graphics g){

if(i==1) g.drawString (s,25,20);

} if(i==2) g.drawString (s,25,20); public void keyPressed(KeyEvent e){

i=1;

s=“你好!”;

repaint();

}

public void keyReleased(KeyEvent e){

i=2;

s=“再见!”;

repaint();

}

} 组件布局管理

容器里的组件的位置和大小是由布局管理器决定的。在Java编程语言中包含下面的布局管理器:

Flow Layout(Panel和Applets的缺省布局管理器) Border Layout(Window、Dialog及Frame的缺省管理程序) public void keyTyped(KeyEvent e){} Grid Layout Card Layout GridBag Layout 顺序布局(FlowLayout)

顺序布局(FlowLayout)是其中最基本的一种布置,是面板(Panel)和它的子类Applet的缺省布局管理器。面板是一个容器,可以容纳多个组件;Applet是它的子类,也继承了能容纳组件的能力。

顺序布局是指将一个个组件从左到右依次、从上到下依次排列,每个组件所占的空间依据各组件所指定的合适尺寸来安排,当一行容纳不下时,便自动安排在下一行。

FlowLayout();

FlowLayout(int align)

FlowLayout(int align,int hgap,int vgap);

参数分别为:对齐方式,横向和纵向以像素为单位的间距

setLayout(new FlowLayout(FlowLayout.RIGHT, 20, 40)); setLayout(new FlowLayout(FlowLayout.LEFT))

边界布局(BorderLayout)

边界布局(BorderLayout)是窗口类(Window,Frame,Dialog和FileDialog)的缺省布局管理器。

Border布局管理器为在一个Panel或Window中放置组件提供一个更复杂的方案。Border布局管理器包括五个明显的区域:右东左西上北下南和居中 。

当拉伸使用BordLayout布局管理器的容器,各个组件相对位置不变,中间部分组件的尺寸会发生变化,East和West位置的组件的宽度不变,高度随着改变,而South和North位置的组件的高度不变,宽度随之改变。

卡片布局(CardLayout)

卡片布局(CardLayout)将组件像卡片一样放置,每次只显示一个,实现界面之间的相互切换。能够帮助用户处理两个以至更多的成员共享同一显示空间。

CardLayout(); 创建间距为零的对象。

CardLayout(int hgap,int vgap); 创建带有水平hgap和垂直vgap间距的对象。

使用下列Card布局管理器方法转换到一个新卡中。

first(Container parent) 显示第一张卡片。 last(Container parent)

显示最后一张卡片。

next(Container parent) 显示下一张卡片,如果当前是最后一张,则显示第一张。

previous(Container parent) 显示前一张卡片。

show(Container parent,String name) 显示指定名称的组件。

网格布局(GridLayout)

网格布局(GridLayout)是把容器区域分为若干个网络,每一个网格可以放置一个组件。当改变容器大小后,其中的组件相对位置不变,但大小改变。容器中各个组件同高度、同宽度。各个组件的排列方式为:从上到下、从左到右一次排列。

其构造方法:

new GridLayout(int rows,int columns);

创建一个rows行columns列的GridLayout布局管理器对象。

Grid布局管理器总是忽略组件的最佳大小。所有单元的宽度是相同的,是根据单元数对可用宽度进行平分而定的。同样地,所有单元的高度是相同的,是根据行数对可用高度进行平分而定的。

setLayout(new GridLayout(int rows, int cols));

创建并安装一个带有规定好行数和栏数的Grid布局。对布局中所有组件所给的大小一样。

setLayout(new GridLayout(int rows, int cols, int hgap, int vgap);

面板(Panel)

Panel类(面板) 功能:容纳其他对象,安排合理布局

创建面板:

Panel myPanel=new Panel(); 一个面板对象被创建,为了能看得见,它必须添加到窗口或框架对象上。这一点用Container类中的add()方式可以做到。

add(myPanel); 将面板作为容器:

myPanel.add(button) 窗口 Frame类

功能 : 制作一般的独立窗口,它是构件容器

创建

Frame fmInstance=new Frame();

Frame fmInstance=

new Frame(“The window for test”);

将其显示到屏幕上

fmInstance.show()

注意:不用add() 窗口

主要方法

dispose, setVisible ,getTitle, setTitle等

窗口的相关事件: WINDOW_ACTIVATED WINDOW_DEACTIVATED WINDOW_OPENED WINDOW_CLOSED 代表窗口已被关闭(指关闭后)

WINDOW_CLOSING 代表窗口正在被关闭(指关闭前,如点击窗口的关闭按钮)

WINDOW_ICONIFIED 代表使窗口最小化成图标

WINDOW_DEICONIFIED 代表使窗口从图标恢复

由于通过实现接口XXXListener来完成事件处理时,要同时实现该接口中的所有方法。通常我们只是需要对其中的某些方法做处理,而不想实现所有的无关方法。

因此,为了方便起见,JDK1.1为某些监听器接口提供了适配器类(XXXAdapter),当需要对某种事件进行处理时,只需让事件处理类继承事件所对应的适配器类,只重写需要关注的方法即可,而无关的方法就不必实现了。

适配器是一个类而不是接口,因而处理事件的类只能继承一个适配器。

菜单

菜单是图形用户界面的重要组成部分,是由菜单条(MenuBar)、菜单(Menu)、菜单项(MenuItem)和复选菜单项(CheckboxMenuItem)等对象组成。

窗口加入菜单

创建菜单条

MenuBar mb=new MenuBar();

创建菜单项,并加入菜单条:

Menu m1=new Menu(“File”);mb.add(m1);

创建菜单子项,并加入菜单项:

MenuItem open=new MenuItem(“open”);

m1.add(open);

菜单条放入窗口:

Frame f = new Frame("MenuBar"); f.SetMenuBar(mb);

将各个菜单子项注册给实现了动作事件的监听接口

ActionListenter的监听者。

open.addActionListener(this);

为监听者定义actionPerformed(ActionEvent e)方法,

在这个方法中调用e.getSource()或

e.getActionCommand()来判断用户单击的菜单子 项,并完成这个子项定义的操作。

使用分隔线 m1.addSeparator();

使用菜单子项快捷键

MenuItem cut= new MenuItem(“Cut”,new

MenuShortcut(„x‟));

或cut.setShortcut(new MenuShortcut(„x‟));

复选菜单项(CheckboxMenuItem) CheckboxMenuItem mi2 = new CheckboxMenuItem("Persistent");应当用ItemListener接口来监视复选菜单。因此当复选框状态发生改变时,就会调用itemStateChanged()方法。

定义二级菜单

Menu m2=new Menu("Paste");

m2.add("Paste All");

m2.add("Paste Part");

弹出式菜单(PopupMenu)

弹出式菜单附着在某一个组件或容器上,一般它是不可见的,只有当用户用鼠标右键单击附着有弹出式菜单的组件时,这个菜单才“弹出”来显示

PopuMenu pm=new PopupMenu();

MenuItem item1=new MenuItem("copy");

Item1.addActionListener(this);

pm.add(item1);

TextArea ta=new TextArea();ta.add(pm);

对话框

自定义对话框

Dialog(Dialog owner) 创建主控对话框,指定其拥有者为另一对话框。

Dialog(Dialog ,String title) 同上,并加上标题。

Dialog(Dialog owener,String title,boolean modal) 创建对话框,指定其拥有者为另一个对话框,并可设置modal来指定是否要主控。

Dialog(Frame owner) 创建主控对话框,指定其拥有者为一窗口。

Dialog(Frame owner,boolean modal) 同上,但可设置modal来指定是否要主控。

Dialog(Frame owner,String title) 创建主控对话框,指定其拥有者为一窗口,并可设置标题。

Dialog(Frame owner,String title,boolean modal) 创建对话框,指定拥有者为一窗口,设置标题,并可设置modal来指定是否要主控。

void dispose() 销毁对话框对象。

String getTitle() 取得对话框的标题。

void hide() 隐藏对话框。

boolean isModal() 测试对话框是否为主控。

Boolean isResizable() 测试对话框是否可改变大小。

void setModal(boolean) 设置对话框为主控。

void setResizable(boolean resizable) 设置对话框是否可以改变大小。

void setTitle(String title)设置对话框的标题。

void show() 显示对话框。

对话框—文件对话框

FileDialog是Dialog类的子类,它创建的对象称为文件对话框。文件对话框是一个打开文件和保存文件的对话框窗口。文件对话框也必须依附一个窗口(Frame)对象。

FileDialog(Frame f,String s,int mode)

public String getDirectory() public String getFile()

内部类

在一个类的内部嵌套定义的类称之为内部类(Inner Class)。

内部类也有自己的成员变量和成员方法。同样可以通过建立内部类的对象,去访问其成员变量和调用其成员方法。

内部类可作为其他类的成员,而且可访问它所在类的成员。

在实现图形界面中对鼠标单击、窗口事件、点击菜单等,需要同时实现多个监听器接口,使用内部类,即可以定义多个内部类去分别实现不同的监听器接口,使事件处理很方便。

参考文献:

1. 吕凤翥,马皓《java语言程序设计》.清华大学出版社.2013 2. 国家863中部软件孵化器《java从入门到精通》.人民邮电出版社.2010

第五篇:java初学者学习心得

学习Java心得体会

学习了一学期的Java课程,觉得是该总结自己的心得体会了。开始学习任何一门课(包括java),兴趣最重要。一直觉得自己在学计算机编程语言,学习了很多,但每门语言都停留在知识边缘地带,都没深入到它们的精华部分,对它们的精华部分知之甚少,于是趁学校开设这门课,并且有自己的老师讲解,还有了上机的机会,比自己自学省事多了,于是鼓足信心,开始了漫长的java征途。

还记得我编写的第一个经典程序“hello Word”。从那时起我已开始走进Java的世界。当时自己不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?问了好多同学,他们告诉我的答案是一样的“java本身要求就是这样子的”,但我自己不甘心,就进行了下面的好多操作:把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。 结果把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么了main方法是这样定义的了。接着在以后的学习中我也采用这样的方法解决问题,却发现自己的速度比别人慢了好多,我就把自己的课余时间也分一部分给了java。因为基础是最重要的,只有基础牢固才有可能对后面的学习有更加深刻的认识!

学习一门新的语言,参考书是离不开的。听老师说订的教材偏难,不适合我们初学者,于是我在图书馆借了参考书(一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等)。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。

在学习Java的语法时,Java的语法是类似c语言的,所以学习的比较轻松。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,和同学一起讨论了好久才得以解决。

在学习Java的面向对象的编程语言的特性。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C语言的经验,花了很长时间,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了很多遍,才彻底领悟了。

开始熟悉Java的类库。基础类库里面的类非常非常多。据说有3000多个。但是我真正使用的只有几个,比如说 java.io.*; java.util.*; java.sql.*;等。 此外,我对于static,public,private,Exception,try{ },catch { },finally{ }等等一开始都不是很懂,都是把书上面的例子运行成功,然后就开始破坏它,不断的根据自己心里面的疑问来重新改写程序,看看能不能运行,运行出来是个什么样子,是否可以得到预期的结果。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。

在学习Java的过程中我得出这样的结论:

1.学习中,要养成良好的习惯(写括号时要成对,字母大小写要区分,单词拼写要准确)。

2.在学习的过程中,最好不是仅仅停留在java表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。

3.在学习的过程中一定要动手做、试着写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己。 4. 在 Java 的学习过程中,可能会遇到形形色色的问题不容易解决,应多去专业论坛了解相关的知识,书本上的知识有限。要会从网上搜索有用的信息 加以整理,促进学习的深入和知识水平的提高。

看了好多网上课程,说学到一定程度要尝试着自己做东西,但觉得自己仅仅经过一学期的学习,还远远不够,希望自己在以后学习中继续努力,能够真真正正拥有一门编程语言,对自己今后的发展起到作用。在学习java语言的同时,也让我学会了如何来发现问题,如何解决问题,怎样有效的学习等等,相信会对我一生都有帮助。

上一篇:无菌制剂生产cgmp下一篇:100个睿智的冷笑话

本站热搜