基于Java的界面布局DSL的设计与实现【达内科技java培训】

基于Java的界面布局DSL的设计与实现【达内科技java培训】
基于Java的界面布局DSL的设计与实现【达内科技java培训】

基于Java的界面布局DSL的设计与实现【达内科技java培训】

Java界面设计应该是一项充满创造性、富有乐趣的工作,但是却往往被认为非常的枯燥和繁琐。究其原因,是因为界面布局领域所采用的描述概念和具体的实现语言之间存在很大的语义隔阂。而一般的界面开发工具提供的所见即所得以及界面布局管理器等方案也无法很好地解决这个问题。

在本文中,我们会给出一种更好的解决方案,我们不是去试图把界面设计者头脑中的设计概念和样式逐步降级、分解成所使用的实现语言能够理解的低层概念,也不是提供一些已经完成的、确定的但难以扩充和更改的布局样式库供界面设计者使用。我们所提供的是一种专门用于描述高层界面设计样式的语言。通过这种语言,界面设计者可以直接、明确地描述出他们头脑中的布局设计样式;通过这种语言,界面设计者可以自己方便地、灵活地制定自己需要的布局样式。此外,本文中给出的设计思想对于其他领域的设计也有很好的借鉴作用。

创造性,还是乏味?

界面设计是一项非常有创造性,甚至富有艺术性的工作,一个简洁、易用、漂亮的界面在带给使用者方便的同时,也会给界面设计者带来极大的成就感。但是,在现实中,情况似乎并非如此,很多人都认为做界面是一项非常繁琐、机械、乏味的工作,并千方百计地去逃避界面相关的工作。这是为什么呢?

原因很简单,因为做界面其实涉及两项工作,一项是界面的一些设计创意,包括界面的布局样式以及和使用者的交互方式,这项工作充满挑战和乐趣。但是,这些设计创意最终是要落实到实现上的,这就是第二项工作。此时,你头脑中那些清晰、完整的设计概念开始变得琐碎,你不得不和那些低层次的坐标位置打交道。更糟糕的是,当你好不容易做好了一个界面,但是发现其中某些元素的布局需要一些调整时,这个你本应认为是一个很简单的改变却造成大量重复的低层次坐标位置更改时,你肯定会认为做界面是多么的机械和乏味呀!

其实,造成这种认识的根源在于界面设计创意和实现这些创意概念的语言之间存在很大的断层。这样,在具体实现时,你就必须得把这些清晰、完整的布局样式降级成一些琐碎、没有什么意义的低层次的坐标值,使得实现语言能够理解。这项工作不仅乏味,而且最终的实现也非常的脆弱——一个在布局样式层面非常简单的更改,就会造成实现层面的巨大变动。比如:我们可以说把一组元素同时按比例缩小10%,做过界面的朋友肯定知道这个更改意味着什么。

为了应对这个断层的问题,目前几乎所有的涉及界面制作的开发工具都提供了相同的解决方法:可视化的界面设计工具以及布局管理器。但是这两种方法都没有从根本上解决这个问题。

可视化界面设计工具确实避免了不少繁琐的界面元素摆放工作,但是对于专业的界面设计来说,通过拖放设计出来的界面在准确度和规范性上都有待提高,此外还有更为重要的一点,那就是存在于设计者头脑中的布局样式仍然没有被明确地描述出来,而是被降级成一个个摆放在一起的零散的组件,虽然这些组件本身是可视的。这个语义断层的存在同样会使得通过可视化界面设计工具设计出来的界面非常脆弱。

布局管理器试图通过提供一些常用的布局样式来解决这个问题。但是,这种做法非常僵化,也就是说你只能使用现有的布局管理器,如果它们无法满足你的要求,你也无法自己定制。此外,这些布局管理器仅仅适合于一些简单的情况。对于一些复杂的布局样式来说,它们的描述能力就显得非常的不足。那些曾经和GridBagLayOut 斗争过的朋友对此肯定深有体会。

在本文中,我们会给出一种更好的解决方案,我们不是去试图把界面设计者头脑中的设计概念和样式逐步降级、分解成所使用的实现语言能够理解的低层概念,也不是提供一些已经完成的、确定的但难以扩充和更改的布局样式库供界面设计者使用。我们所提供的是一种专门用于描述高层界面设计样式的语言。通过这种语言,界面设计者可以直接、明确地描述出他们头脑中的布局设计样式,通过这种语言,界面设计者可以自己方便地、灵活地制定自己需要的布局样式。也就是说,本来仅存在于界面设计者头脑中的抽象布局样式,现在也变得可描述,可编程了。

界面布局语言介绍

在学习界面布局语言的设计之前,先来了解一下该语言的使用是非常有帮助的。我们的界面布局语言非常简单,简单到只有一种原子:Component。Component 是一种基本的布局元素,可以对Component 进

行平移和伸缩,使其和给定的一个布局空间Rectangle 匹配。比如对于Button 这个Component 来讲,它具有传统按钮的外观,但是它在布局上所占的实际空间则是由为其指定的Rectangle 决定的。此外,Component 要最终在界面上显示出来,就必须有一个物理上的Container。也就是说,界面设计应该是一项充满创造性、富有乐趣的工作,但是却往往被认为非常的枯燥和繁琐。究其原因,是因为界面布局领域所采用的描述概念和具体的实现语言之间存在很大的语义隔阂。而一般的界面开发工具提供的所见即所得以及界面布局管理器等方案也无法很好地解决这个问题。

在本文中,我们会给出一种更好的解决方案,我们不是去试图把界面设计者头脑中的设计概念和样式逐步降级、分解成所使用的实现语言能够理解的低层概念,也不是提供一些已经完成的、确定的但难以扩充和更改的布局样式库供界面设计者使用。我们所提供的是一种专门用于描述高层界面设计样式的语言。通过这种语言,界面设计者可以直接、明确地描述出他们头脑中的布局设计样式;通过这种语言,界面设计者可以自己方便地、灵活地制定自己需要的布局样式。此外,本文中给出的设计思想对于其他领域的设计也有很好的借鉴作用。

创造性,还是乏味?

界面设计是一项非常有创造性,甚至富有艺术性的工作,一个简洁、易用、漂亮的界面在带给使用者方便的同时,也会给界面设计者带来极大的成就感。但是,在现实中,情况似乎并非如此,很多人都认为做界面是一项非常繁琐、机械、乏味的工作,并千方百计地去逃避界面相关的工作。这是为什么呢?

原因很简单,因为做界面其实涉及两项工作,一项是界面的一些设计创意,包括界面的布局样式以及和使用者的交互方式,这项工作充满挑战和乐趣。但是,这些设计创意最终是要落实到实现上的,这就是第二项工作。此时,你头脑中那些清晰、完整的设计概念开始变得琐碎,你不得不和那些低层次的坐标位置打交道。更糟糕的是,当你好不容易做好了一个界面,但是发现其中某些元素的布局需要一些调整时,这个你本应认为是一个很简单的改变却造成大量重复的低层次坐标位置更改时,你肯定会认为做界面是多么的机械和乏味呀!

其实,造成这种认识的根源在于界面设计创意和实现这些创意概念的语言之间存在很大的断层。这样,在具体实现时,你就必须得把这些清晰、完整的布局样式降级成一些琐碎、没有什么意义的低层次的坐标值,使得实现语言能够理解。这项工作不仅乏味,而且最终的实现也非常的脆弱——一个在布局样式层面非常简单的更改,就会造成实现层面的巨大变动。比如:我们可以说把一组元素同时按比例缩小10%,做过界面的朋友肯定知道这个更改意味着什么。

为了应对这个断层的问题,目前几乎所有的涉及界面制作的开发工具都提供了相同的解决方法:可视化的界面设计工具以及布局管理器。但是这两种方法都没有从根本上解决这个问题。

可视化界面设计工具确实避免了不少繁琐的界面元素摆放工作,但是对于专业的界面设计来说,通过拖放设计出来的界面在准确度和规范性上都有待提高,此外还有更为重要的一点,那就是存在于设计者头脑中的布局样式仍然没有被明确地描述出来,而是被降级成一个个摆放在一起的零散的组件,虽然这些组件本身是可视的。这个语义断层的存在同样会使得通过可视化界面设计工具设计出来的界面非常脆弱。

布局管理器试图通过提供一些常用的布局样式来解决这个问题。但是,这种做法非常僵化,也就是说你只能使用现有的布局管理器,如果它们无法满足你的要求,你也无法自己定制。此外,这些布局管理器仅仅适合于一些简单的情况。对于一些复杂的布局只要给定了一个Rectangle 和一个Container,一个Component 就可以在界面上指定的布局位置呈现出来。

例如,当我们使用布局语言在一个JFrame 上坐标位置为(0,0) 展示一个width 为200,height 为60 的按钮时,我们可以这样来描述(为了简洁起见,后面的代码实例中均略去Layout 名字空间前缀):Button().title(“button1”).at(0,0,200,60).in(this.getContentPane());

仅仅提供这样一种原子元素的语言显然无法满足我们前面提到的目标。在我们的界面布局语言中,还提供了两种在布局中非常常用的两种从已有组件构造新组件的组合手段:above 和beside。其中above 组合子接收 3 个参数:两个现有Component 以及一个比例,它会产生出一个新的复合Component,其中按照给定的比例把第一个Component 摆放在第二个Component 之上。Beside 组合子接收同样的 3 个参数,

并且也产生出一个新的复合Component,其中按照给定的比例把第一个Component 摆放在第二个Component左边。

例如,如果我们希望在一个给定的Container C 上的Rectangle(0,0,300,40) 中,平行摆放一个TextField 和一个Button,且希望TextField 占据80% 的比例时,可以这样来描述:

beside(TextField(), Butto n().title(“ok”), 0.8).at(0,0,300,40).in(C)

同样,我们可以使用above 来进行如下描述:

above(TextField(), Button().title(“ok”), 0.5).at(0,0,300,60).in(C)

值得注意的是,在我们的界面布局语言中,Component 在beside 和above 操作下是封闭的,也就是说beside 和above 操作的结果同样也是Component,并完全可以作为基本的Component 来再次进行beside 和above 组合。这样我们就可以使用这两个简单的操作生成更加复杂的Component 来,从而完成复杂的界面布局。比如,我们可以这样来进行描述:

Component L = beside(TextField (), Button().title(“…”), 0.8);

above(L, Button().title(“ok”), 0.5). at(0,0,300,60).in(C)

为了保证界面布局语言的完备性,我们增加了一种特殊的原子元素:Empty。它的作用只是占据一定的布局空间。比如,如果我们希望在一个布局空间中右半边放置一个Button,左半边空置,就可以这些描述:

beside(Empty(), Button(), 0.5).at(0,0,200,40).in(C)

读者在后面可以看到,正是这个Empty 以及beside 和above 操作的闭包性质为我们描述任意复杂的布局样式提供了可能。

在有了这些基础的布局元素和组合手段后,我们就可以通过组合手段来把一些典型的布局样式抽象出来。在下一小节中读者将会看到,布局语言中的beside 和above 组合操作其实就是Java 中的普通方法,因此我们的布局语言中不需要什么特别的抽象手段。也就是说,我们可以直接使用Java 中已有的抽象手段。

例如,如果我们希望抽象出这样一种布局样式,其中给定一个布局空间和一个布局组件,我们期望该组件能够按照指定的纵、横留白比例位于该布局空间的中心地带。我们可以把该布局样式抽象出来,并命名它为center。并可以在更复杂的布局样式中把center 当作一个基本语素使用。center 的实现如下:public Component center(Component cp, float hRatio, float vRatio) {

float s1 = (1-2.0* hRatio)/ (1.0 - hRatio);

float s2 = (1-2.0*vRatio)/ (1.0-vRatio);

Component u = above(Empty(), above(cp, Empty(), s2), vRatio);

return beside(Empty(), beside(u,Empty(), s1), hRatio);

}

当我们想把一个按钮放置按照在横向0.2,纵向0.1 的留白比例放在布局空间(0,0,100,30) 中时,我们可以简单的进行如下描述:

center(Button().title(“I am at center.”), 0.1,0.1).at(0,0,300,60).in(C)

我们还可以构建出h_seq 和v_seq 这样的布局样式,它们分别为把一组给定的布局元素横向顺序排列和纵向顺序排列,其实现如下:

public Component h_seq(Component[] cps) {

int len = cps.length;

if(len == 1) return cps[0];

return beside(cps[0], h_seq(slice(cps, 1, len)), 1.0/len);

}

public Component v_seq(Component[] cps) {

int len = cps.length;

if(len == 1) return cps[0];

return above(cps[0], v_seq(slice(cps, 1, len)), 1.0/len);

}

其中slice 方法有 3 个参数,一个为布局元素数组,另外两个为区间的起止位置,该方法把给定布局元素数组中指定起止位置的区间部分作为一个新的布局元素数组返回。这两个方法的实现都比较简单直接。下面是两个应用例子:

Component[] cps = new Component[]

{ Button().title(“1”), Button().title(“2”), Button().title(“3”) };

h_seq(cps).at(0,0,300,60).in(C)

v_seq(cps).at(0,0,150,200).in(C)

在center、h_seq、v_seq 这些布局样式的基础上,我们可以定义出更加高阶的样式来,比如,给定一布局元素序列,我们希望它们在给定的布局空间中按照N 行、M 列排列。我们称之为block,其实现如下:

public Component block (Component[] cps, int N, int M) {

Component[][] fcps = formalize(cps, N, M);

Component[] rows = new Component[fcps.length];

for(int i = 0; i < fcps.length; i++) {

rows[i] = h_seq(fcps[i]);

}

return v_seq(rows);

}

其中formalize 是一个工具方法,它把一个给定的布局元素数组规范化为N 行M 列的形式,如果不足则用Empty 组件补齐。

如果希望在block 中,每个元素都可以指定一些横向和纵向的留白,则可以定义一个block_with_margin 布局样式,其实现如下:

public Component block_with_margin(Component[] cps, int N, int M,

float hRatio, float vRatio) {

Component[] ncps = new Component[cps.length];

for(int i=0; i

ncps[i] = center(cps[i], hRatio, vRatio);

}

return block(ncps, N, M);

}

好了,现在我们来看一个稍微复杂一些的例子,我们将使用前面制作的一些布局样式构建一个迷你计算器的外观,如下图所示:

对应的描述代码如下:

Component[] cs = new Component[]{

Button().title("0"),

Button().title("1"),

Button().title("2"),

Button().title("+"),

Button().title("3"),

Button().title("4"),

Button().title("5"),

Button().title("-"),

Button().title("6"),

Button().title("7"),

Button().title("8"),

Button().title("*"),

Button().title("9"),

Button().title("="),

Button().title("%"),

Button().title("/")

};

Component opLayout = block(cs,4,4);

above( above( TextField(),

beside( Button().title("Backspace"), Button().title("C"),0.5), 0.5),

block(cs,4,4), 0.3).at(0,0,300,200).in(C);

如果我们现在希望将所有数字以及操作按钮按照横向和纵向各2% 进行留白,我们所要做的仅仅是一行的改动,就是把:

Component opLayout = block(cs,4,4);

更改为:

Component opLayout = block_with_margin(cs, 4, 4, 0.02, 0.02);

这意味着什么呢?这意味着我们可以直接使用布局语言进行界面制作,我们可以直接针对布局进行编程,我们所写出来的界面代码就是我们的布局规格说明。

从上面的介绍中,读者可以看出,我们的界面布局语言可以非常方便地定义出一些常见的布局样式,还可以把这些样式组合成更为复杂的一些高阶布局样式,并且这种组合是没有任何限制的。此外,这些布局样式的定义描述方式是和界面设计者头脑中所使用的一些布局词汇和规则贴近的。通过使用界面布局语言,界面设计者完全可以摆脱那些呆板、机械又难以定制和扩展的布局管理器,可以轻松地把头脑中的布局创意直接描述出来,逐步形成自己的布局样式库,充分享受这种创造性的工作所带来的乐趣。

达内学习心得:浅谈java学习方法和后期面试技巧

达内学习心得:浅谈java学习方法和后期面试技巧 获奖学员:尹灿 所获奖项:三等奖 内容: 浅谈java学习方法以及后期面试技巧. 时光飞逝,本人2月底份班级,现已毕业,现在此发表一些学习感受以及学习技巧,本篇文章纯手打,大家可以参考一下。 下面简单列举一下大家学习java的一个系统知识点的一些介绍(按照TTS6上面的顺序来的): 一:java基础部分:java基础的时候,有些知识点是非常重要的,比如循环系列。For,while,do-while.这方面只要大家用心点基本没什么难点。 二:面向对象:oop面向对象的时候,偏重理论,相信这方面的文章也很多,大家可以多看看,在这就不说了。重点掌握面向对象的三大特征和基本原理。 三:java核心一:这方面主要偏重API,所以在学习了这章的时候,一定要对照API去学习,多看API,主要就是方法多,string和集合的方法最为重要。后面将为大家提供本人整理的部分笔记。 四:java核心二:主要讲解了异常,线程和IO流,其实个人认为重点掌握线程就行,对于流和异常多写就行,线程偏重理论也最为重要。 五:oracle数据库方面:建议学习数据库的时候大家一定要端正态度,数据库极为重要,本人当时在学习这个的时候,一直以为数据库只是为了增删改查,故没有认真学习,后期面试的时候吃了不少亏,因为现在软件公司对数据库的要求跟java一样重要,基本都会单独一张笔试题笔试数据库。 六:JDBC/XML系列:JDBC主要是3个核心接口(Connection) (Statement) (ResultSet)的使用,大家在学习的时候,熟练运用3接口,jdbc的原理也相当重要,虽然后期学习了HIbernate 之后,JDBC不需要再用,但其底层原理还是JDBC,而且现在很多软件公司不一定会用到Hibernate框架,所以建议大家还是把“本”学好,XML:重点掌握解析互换的2个核心接口方法。 七:HTML/CSS/JS:对于这个,本人相当纠结,因为这个有点偏向于美工的意思,所以后期想从事后台开发的同学一般不会太重视,但是现在都是web项目,而且很多软件公司并不是把许多这方面的事情交给美工(除非是那种有很高要求的静态页面),而且现在html代码都是在jsp里面写,所以建议还是好好学学,因为公司不会让一个美工去专门为你写一些简单的html代码,包括js!这章其实不难,就是属性方法知识点比较多,大家多记记,多写写,重在多练! 八:Servlet/Jsp:如果想从事web和b/s开发(现在基本都是web和b/s开发),这章极为重要,服务器的访问以及配置。tomcat的使用都在这一章,虽然后期struts框架的学习简化了servlet

java的布局管理

https://www.360docs.net/doc/068840009.html,/liujun13579/article/details/7772215 java.awt包中大约有 FlowLayout 流式布局 BorderLayout 边框式布局 GridLayout 网格布局 CardLayout 卡片布局 GridBagLayout 复杂的网格布局 javax.swing包中大约有如下布局 BoxLayout 盒式布局 OverlayLayout 重叠布局 ScrollPaneLayout 类JScrollPane使用的布局管理器ViewportLayout 类JViewport使用的布局管理器 详解:

实例:对齐方式 // FlowLayoutDemo.java importjavax.swing.*; importjava.awt.*; public classFlowLayoutDemo extends JFrame { public FlowLayoutDemo() { //设置窗体为流式布局,无参数默认为居中对齐setLayout(new FlowLayout()); //设置窗体中显示的字体样式 setFont(new Font("Helvetica",Font.PLAIN, 14)); //将按钮添加到窗体中

getContentPane().add(newJButton("Button 1")); getContentPane().add(new JButton("Button 2")); getContentPane().add(new JButton("Button3")); getContentPane().add(newJButton("Button 4")); } public static void main(String args[]) { FlowLayoutDemo window = newFlowLayoutDemo(); window.setTitle("流式布局"); //该代码依据放置的组件设定窗口的大小使之正好能容纳你放置的所有组件 window.pack(); window.setVisible(true); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setLocationRelativeTo(null); //让窗体居中显示 } }

2019达内学习总结

2019达内学习总结 达内学习总结 从开始到达内学习到现在将近有两个月的时间了,现总结一下这一阶段的学习心得: 一.standardc的学习总结 由于原来在大学时候学过一点c语言,所以标c学的还是比较轻松,可以达到学习目标. 二.c语言高级编程学习总结 这部分知识总体来说,基本上都理解了,最后的文件大学时没有学过,感觉讲的快了点。后面经过仔细的理解和学习,有了更一步的认识。 三.C++语言的学习总结 作为非计算机专业的学生,大学时都没有学过,经过学习c++的编程语言,使我了解了c++的抽象,封装,继承,多态等经典特性,感觉c++是一门非常好的面向对象的语言,但是感觉讲的太快,基本上都没有太多的消化时间,我想关于c++的继承,多态方面还是要抽时间好好深入的学习一下. 四.数据结构和算法的学习总结 这部分知识感觉比较抽象,原来都没有接触过,感觉学的比较吃力,但是本人觉得这部分知识,非常有意思,也感觉到非常重要,数据结构和算法博大精深,不可能仅靠老师的几天时间就可以完全学明白的,比如数据结构中链表,算法中的快速排序等其乐无穷,虽然我 感觉自己还没有真正的领会,但是我觉得我会抽出时间仔细的研究这方面的知识,为以后的进一步学习奠定坚实的基础.

五.标准模板库的学习总结 这部分知识对我来说也是新的,但是我觉得它非常重要,模板库为我们编程人员提供了强大的编程工具,特别是vector,string ,list等,个人觉得是非常好的工具。个人觉得领会了其中的奥妙,但是还不能运用自如,需要进一步的学习. 六.unix下的c语言编程学习总结 对于这一部分知识,我想它比较偏重于底层,对于想在un ix/li nux 下编程的人员来说,需要下大功夫学习,对于在win dows 下编程的人员来说,学习这一部分知识对将来学习windows下编程也是有好处的,但是我个人觉得不如早分开来学,让学员有所侧重。 对于这部分知识,我觉得比较难理解,难记忆,需要下功夫反复的思考,反复的练习。 总之,经过这一段的学习,我觉得有得有失,对于学习中没有学好的,学的不足的,我想我会努力干上去的。 成都达内学员:周*军 达内学习总结[篇2] 回想起我在达内培训的日子,感触良多。然后总结了下这段时间在达内培训的几点小心得,希望能够对大家有点启示: 1. 四个月时间不长,所以要认真听课,是对自己负责任同时也是尊重老师,严格要求自己。 2. 认真跟随老师敲代码,代码就是靠孰能生巧,写的代码多了自然就能融会贯通,所谓以小见大,慢慢就会窥视整个架构。 3?俗话说勤能补拙,勤奋总是有好处的。比别人多学一点点,4个月下来就可以在以后的面试中工作中占很大优势,底气自然就足点。

Java图形用户界面设计

前言 随着Internet的飞速发展,Java技术也得到了越来越广泛的应用。而无论我们是采用J2SE、J2EE还是J2ME,GUI都是不能回避的问题。现在的应用软件越来越要求界面友好、功能强大而又使用简单。而众所周知,在Java中进行GUI 设计相对于其跨平台、多线程等特性的实现要复杂和麻烦许多。这也是很多Java 程序员抱怨的事情。但GUI已经成为程序发展的方向,所以我们也必须了解Java 的GUI设计方法和特点。其实,采用Java提供的布局管理器接口和相应的布局管理类,我们也可以做出相当漂亮的界面来,当然实现起来肯定要比VB麻烦许多。本文试图通过自己的开发经历介绍一些具体的应用实例,希望能给那些曾经象我一样苦闷的Java痴迷者一些帮助。 Java中的布局管理器 2.1 为什么要使用布局 在实际编程中,我们每设计一个窗体,都要往其中添加若干组件。为了管理好这些组件的布局,我们就需要使用布局管理器。比如说,设计一个简单的计算器,或一个文本编辑器等等。这些组件是让JVM 自己任意安排呢?还是按照一定的位置关系进行规范的安排呢?当然应该选择后者。将加入到容器的组件按照一定的顺序和规则放置,使之看起来更美观,这就是布局。在Java中,布局由布局管理器 (LayoutManager) 来管理。那么,我们在什么时候应该使用布局管理器?应选择哪种布局管理器?又该怎样使用布局管理器呢? 如果你写的是GUI程序,在使用AWT/Swing组件时就不应硬性设置组件的大小和位置,而应该使用Java的布局管理器(LayoutManager)来设置和管理可视组件的大小和位置,否则就有可能造成布局混乱。不信,你可以新建一个Frame(或JFrame),通过setBounds()方法往其中添加几个Button(或JButton),一旦你将窗体拉大或缩小时,你会发现组件的排列完全不是按你所预想的那样。为了解决这个问题,即当窗体(或容器)缩放时,组件位置也随之合理调整,我们就需要使用布局管理器。 为此,我们首先要知道Java的布局方式,Java提供的API中有些什么布局管理器,它们的布局特点是什么。 2.2 Java的布局方式 我们都知道,Java的GUI界面定义是由AWT类包和Swing类包来完成的。它在布局管理上采用了容器和布局管理分离的方案。也就是说,容器只管将其他组件放入其中,而不管这些组件是如何放置的。对于布局的管理交给专门的布局管理器类(LayoutManager)来完成。 现在我们来看Java中布局管理器的具体实现。我们前面说过,Java中的容器类(Container),它们只管加入组件(Component),也就是说,它只使用自己的add()方法向自己内部加入组件。同时他记录这些加入其内部的组件的个数,可

java菜单和工具栏界面代码设计

实验八菜单和工具栏 import java.awt.*; import javax.swing.*; import java.awt.event.*; public class c extends JFrame{ private JMenuBar menuBar; private JMenu xtMenu,xyMenu,zyMenu,xsMenu,kcMenu,cjMenu,jsMenu;// private JMenuItem aItem,bItem,cItem,dItem; // private JMenuItem eItem,fItem,gItem,hItem; private JMenuItem iItem,jItem,kItem,lItem; private JMenuItem mItem,nItem,oItem,pItem; private JMenuItem qItem,rItem,sItem,tItem; private JMenuItem uItem,vItem,wItem,xItem; private JMenuItem yItem,zItem,aaItem,bbItem; public c(String account){ setTitle("学生管理系统"+"当前管理员为"+account); setSize(500,400); center(this);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); createMenu(); showToolBar(); setVisible(true); } //caidan public void createMenu(){ menuBar=new JMenuBar();//创建菜单栏 xtMenu=new JMenu("系统管理"); aItem=new JMenuItem("学院设置"); bItem=new JMenuItem("专业设置"); cItem=new JMenuItem("修改密码"); dItem=new JMenuItem("退出"); //dItem.setMnemonic('Q'); xtMenu.add(aItem); xtMenu.add(bItem); xtMenu.addSeparator(); xtMenu.add(cItem); xtMenu.addSeparator();

达内学习心得体会javadoc

达内学习心得体会java 篇一:达内Java学习心得之易犯错误 第1 部分语法 程序员们总是被层出不穷的复杂问题所困扰假如我们最基本的开放工具 ——设计和编写程序的语言本身就是复杂的那么这个语言自己也会成为这些复 杂问题的一部分而非它们的解决方案了 —— C. A. R. Hoare, The Emperor’s Old Clothes Java 语言从C++派生而来并借鉴了Objective C Eiffel Smalltalk Mesa 和Lisp 这些语言的一些特性当使用其他语言的程序员转用Java 来编程时他们很快就会发现Java 的一些特性和自己以前所熟悉的语言非常相似因此这些程序员通常会认为这些特性在Java 中和在以前所使用的语言中表现一致其实完全不是这样这些想法在C++程序员中尤其普遍这一部分重点强调了Java 语言上经常会绊倒新手的陷阱和语言行为 本部分包括以下 10 个单元 Item 1 什么时候被覆盖的方法并非真的被覆盖了本单元解释了调用子类的实例 方法和静态方法之间的微妙差别 Item 2 String.equals()方法与== 运算符的用法比较”

本单元解释了这两种方法比较字符串的不同之处并指出了常量池是如何混淆这两种用法的 第1 部分语法 2 t Item 3 Java 是强类型语言本单元解释了基本类型的转换和提升的规则这对从C++ 转到Java 的程序员尤为重要Item 4 那是构造函数吗本单元给出了一个经典的然而又非常简单的语言陷阱当 我们培训新的Java 学员时这个陷阱总是让学员们问出这样的问题编译器怎么会没发现它 Item 5 不能访问被覆盖的方法本单元又一次讨论了Java 语言中的方法调用读完以后你将完全理解这个知识点 Item 6 避免落入隐藏变量成员的陷阱本单元讨论了这一最常见的陷阱所有Java 语言的入门课程都应该提及这个问题并且和this 引用一起讨论 Item 7 提前引用这一较短的单元向我们演示了什么是提前引用以及如何去避免 它 Item 8 设计可继承的构造函数本单元是取自来之不易的实践经验对于每一个想开发可重用Java 类的程序员来

Java注册界面设计

J a v a注册界面设计 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

Java注册界面设计 package test; public class Register_GUI { public Register_GUI() { RegisterFrame rf = new RegisterFrame(); (true); } public static void main(String args[]) { new Register_GUI(); } } class RegisterFrame extends JFrame { rim(); = new String()); = () "男" : "女"; = ().trim(); = ().toString(); (null, "\t 用户名不能为空"); return; } (null, "\t 密码不能为空 "); return; } (null, "密码两次输入不一致,请重新输入"); return; } (null, "\t 年龄不能为空"); return; } int age = ; if (age <= 0 || age > 100) { (null, "\t 年龄输入不合法"); return; } (null, "\t 注册成功!" +" \n 姓名:"++" \n 性别:"++"\n 年龄:"++"\n 班级: "+;

} if () == resetbtn) { (""); (""); (""); (); (""); (0); } if () == cancelbtn) { (); } } } class Register { String name; String password; String sex; String age; String nclass; }

java培训班心得体会范文

java培训班心得体会范文 java培训心得体会1 从学习java以来,已经进行过三次pta作业的训练。虽然每次作业的完成都遇到了些许困难和障碍,不是一帆风顺的,但通过自己的摸索,实践,总能完成作业要求,每次作业之后都有不同的收获。这些新的收获告诉我,实践出真知,动手会学习到更多东西。总结前面的三次作业,我发现面向对象程序设计这种语言不再那么神秘,我相信马上就能看到揭开神秘面纱后的的它。 (1).总结三次作业的知识迭代关系 第一次作业是练习java类型的使用,以及一些简单的语法。主要目的是让我们熟练运用java的基本操作,为后面的练习打下坚实基础。通过第一次作业,主要掌握了java类型的使用,及输入输出操作,起初输入操作是不太熟悉的。第二次作业比第一次作业难度肯定加大了,最直观的感受就是代码量增多了,题型也是求解某一类问题,开始要求用方法,而不是所有东西都没有章法地写在main里面。方法的使用是java的一大特色,所以必须要求掌握。第三次作业显然难度又加大了,作业的难度系数总是在上升状态的,这样才能得到有效的提高。这次作业的要求是另写一个类并实现多种方法。确实难住我了,不过通过摸索还是实现了。类的使用是java入门,因为java 程序就是用类组成的。这三次作业是有java知识迭代关系的:第一次作业:掌握java的基本语法及类型,以及输入输出操作——>第二次作业:掌握java的方法使用,以及稍复杂的计算——>第

三次作业:掌握java的类的使用及多种方法的使用,用new操作来创建一个类的对象,从而用对象去调用类的功能方法。这些都是一次一次递进的,每次作业完成后都会离真正的java更近一步,也能慢慢体会面向对象程序设计的特点。 (2).如何通过作业逐步从面向过程过渡到面向对象 作业通过一些具体要求,让我们学习java的用法。第一次作业,就从输入输出感受到了面向过程与面向对象的差别,第二次作业就学习到了方法的用法,第三次作业,就了解到了java里的类与方法,这些都是作业提供的从面向过程到面向对象的过渡。 (3).作业过程中遇到的问题及解决方法 问题1:作业一中的判断三角形类型中的判断等腰直角三角形测试点过不去 解决方法:试了很多组数据,发现有的数据与预想的不一样,原来计算机有精度要求,而等腰直角三角形的两直角边都是无理数,不能轻易用勾股定理判断,要用精度去规范判断等腰直角三角形。 java编程是极其严谨的,不容一丝差错,宁可牺牲其灵活性也要保证其稳定性。有一次我在java编译器里将类的名字命名为Test,结果一直报错,而程序又找不出错误,想破脑袋也想不明白,后来请教别人,被某位碰到过相似问题的仁兄一语道破,原来java类里面已经隐含定义了Test类,我们又定义一次会让编译器错乱,最后我把类名改了,果然可以运行了。真是一招不慎,满盘皆输。失之毫厘,差之千里,任何标点符号都不能出错。

java的界面设计报告

Java 学院:计算机科学学院 班级:计算机科学与技术2班 姓名:雷燕 学号:41209010227 综 合 大 作 业

一、问题背景和描述 针对高等院校的教学过程,开发出相关的教学过程信息管理系统,提高教学质量。教学过程如下图。每项教学活动中都会产生相关信息,利用学习的知识对各种信息进行存储和维护。 二、问题分析及设计思路 1、所需解决问题: 实体功能存放位置界面风格 填空题search&display File Swing 2、实体分析: 有实际意义实体: (1)填空题的存储位置在file中 (2)属性为:题目内容,题目编号以及题目的答案 (3)引用:先存入了F盘,然后再从文件中读取,然后按编号搜索及显示。 3、功能分析:查找功能需要首先输入要查找的题目编号,查找到题

目内容并显示。 4、界面分析:只能用Swing继承自Jframe,界面风格为比较随意,整体风格比Awt显得更美观。其中使用方法与AWT有些区别。 5、程序架构: 查找和显示填空题:在界面上输入所需要查找的题目编号,点击ok,在界面中显示所找题号题目内容。 三、类图 四、程序代码 1.首先我创了一个填空题的类,其中它具有题目的编号,内容,正确答案的属性

package package雷燕; //定义一个填空题的类 public class Fullbank { int number; String connents; String answer; public Fullbank(int a,String b,String c) { number=a; connents=b; answer=c; }} 2.我然后把几个填空题类存入了文件,是按对象存入 public class putinfullbank { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { Fullbank []b=new Fullbank[10]; Scanner c=new Scanner(System.in); for(int i=1;i<=10;i++)

达内实习报告共篇

篇一:达内实习报告 图片已关闭显示,点此查看 中南林业科技大学理学院实习报告 实习类别: 专业: 姓名: 学号: 指导教师: 实习内容: 实习时间: 专业综合实习信息与计算科学杨勇老师 core java 2011-7-1 到2011-7-10 图片已关闭显示,点此查看 图片已关闭显示,点此查看

图片已关闭显示,点此查看 图片已关闭显示,点此查看 图片已关闭显示,点此查看 图片已关闭显示,点此查看 篇二:达内实习报告 实习报告 实习单位(地点):渥瑞达实习时间:2011 年 4 月实习指导教师:周奕学生学号学生姓名:韩芳 ----------------------------------1.实习单位总体印象 2.所学专业知识与实习内容结合的认识 (1)实习内容 实习的内容主要是学习java语言来开发手机系统。

(2)实习对所学专业知识提高的认识通过对java知识的重新学习,让我对java语言有了更深的理解,学习了一些新的代码和编程方式,对我以后的编程有很大的帮助。实习的目的在于通过理论与实际的结合、个人与社会的沟通,进一步培养自己的业务水平、与人相处的技巧、团队协作精神、待人处事的能力等,尤其是更好的培养观察、分析和解决问题的实际工作能力,以便提高自己的实践能力和综合素质,希望能帮助自己以后更加顺利地融入社会,投入到自己的工作中。 3.实习总结 (1)对本次实习实践过程的认识 2011年4月,我在渥瑞达进行了为期一个星期的实习。在这期间公司的老师给予了我热情的指导和帮助,同时我也虚心向他们请教学习,把在课堂上所学的知识加以运用,在理论运用于实践的同时,也在实践中更加深刻地理解了以前没有理解透彻的知识。经过这些天的实习,我对公司也有了更深刻的了解,也初步熟悉了编程员的实际操作步骤。更重要的是, 这是我踏入社会的第一步,虽然只有短短一个星期的时间,但是也让我看到了自身很多欠缺的地方,让我深知出身社会,只在学校里所学的知识是不够用的,还需要从社会中吸取更多的知识与经验。

Java注册界面设计

Java注册界面设计 package test; import https://www.360docs.net/doc/068840009.html,ponent; import java.awt.Dimension; import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JRadioButton; import javax.swing.JTextField; import javax.swing.border.Border; import java.util.Vector; public class Register_GUI { public Register_GUI() { RegisterFrame rf = new RegisterFrame(); rf.setVisible(true); } public static void main(String args[]) { new Register_GUI(); } } class RegisterFrame extends JFrame { // 框架类 /** * */ private static final long serialVersionUID = -3779096743730354383L; private Toolkit tool; public RegisterFrame() { setTitle("用户注册");

JAVA布局管理

JA V A布局管理 一、FlowLayout(流布局管理):其组件的放置规律是从上到下,从左到右依次进行放置。构造方法有下列几种: 1.F lowLayout():创建每行组件居中对齐、组件间距为5个像素单位。 2.F lowLayout(int align):创建指定每行的对齐方式、组件间距为5个像素单位。 align取值表示组件的对齐方式:CENTER(居中对齐),LEFT(左对齐),RIGHT(右对齐)。 二、BorderLayout(边框布局管理):将容器分为上、下、左、右、中五个区域,分别对应North(北区),South(南区),West(西区),East(东区)和Center(中区)。用add(component,index)方法向容器中添加组件,其中第二个参数指明组件位置,其取为:BorderLayout.North,BorderLayout.South,BorderLayout.East,BorderLayout.West,BorderLayout.Center。其构造方法有中下几种: 1.B orderLayout():创建组件间无间距的布局对象。 2.B orderLayout(int hgap,int vgap):创建指定组件间距的布局对象。

三、GridLayout(网格布局管理器):将容器分成尺寸相同 的网格,组件被放在网格的空白处,顺序与流式布局一样。 网格中组件大小相同。其构造方法有下列几种: 1.GridLayout()以每行一列的方式构建一个GridLayout 对象。 2.GridLayout(int row,int columns):根据指定行数和列数 构造一个GridLayout对象,组件间距为0。 3.GridLayout(int row,int columns,int hgap,int,vgap): 根据 指定行数和列数构造一个GridLayout对象,组件间距按指定值设置。 四、CardLayout( 卡片布局管理器):它将组件放在一系 列卡片上,一次只能看到一张卡片,一张卡片只能放一个组件。使用构造方法CardLayout()可以构建CardLayout对象。 组件按添加顺序存放在卡片序列中,使用下列方法将组件添加到容器中: add(Component,component,String name); name是卡片中组件的标识。 为了使组件在使用CardLayout容器中可见,可使用CardLayout对象的下列方法: 1)first(Container container):显示第一张卡片。 2) last(Container container):显示最后一张卡片。

达内学习总结

达内学习总结 篇一:达内Java学习心得-第一个月 学习心得 七月之始,我们的达内java班又开始正式上课了,从上课第一天到现在,已经有一个月了,在这短暂的一个月里,我学到是java 的基础知识,重点是JavaSE。感觉时间过的是非常快的,短短一个月就这样被我们给熬过去了,当中既有心酸也有快乐。 学习之初,有着一点点的不适应,首先是时间段的不适应,每天有这规定的时间上课,下课,休息。或许是在大学这个懒散的环境下,我们已经渐渐的远离了规定与约束,过分的放纵自己。随着时间的一天天过去,慢慢的,我们开始适应了这种学习的时间安排以及这样的学习氛围,从一种自由放纵中摆脱出来,有了所谓的上进心,开始了各自的Java之路。在这段时间里,自己感觉最明显的就是打字速度和以前相比有了明显的提升,此外就是对一些基本的代码的理解和运

用有了一定自己的意识。这两点是最明显的变化。个人感觉学了这些基本知识之后,对于Java的认识上的确有了一个提升,起初对它的认识感觉和其他的编程语言应该没有多大区别,但是学完这些这些基本的知识之后,我的认识是Java很强大,我们需要不断地去学,更多的是要不断的去敲,把它练熟,这样自己在从业的时候才会有底气,敢于和别人去竞争。 虽然我们的课堂是看视频来学习,但是个人觉得只要是能学到知识,这些学的形式只是一种次要的因素而已,对于一个想要学习的人来说,他每时每刻都在学习者,因为他爱学习。有了这一个月的学习经历之后,感觉自己当初选择达内来学习Java是一个正确的选择,我相信我只要有学习渴望,达内一定能给我所要学的。一个都不爱学习的人,你给他再好的学习环境和最好的学习条件,无亚于对牛弹琴,无动于衷。结果还有一个浪费资源,浪费精力。整个学习的时间是四个月,对于余下的三个月,我拭目以待,相信自己一定能够在有限的时间内能够学好这一门语言,为自己以后多一个机会。

三十三、Java图形化界面设计——布局管理器之null布局(空布局)

三十三、Java图形化界面设计——布局管理器之null布局(空布局) 一般容器都有默认布局方式,但是有时候需要精确指定各个组建的大小和位置,就需要用到空布局。 操作方法: 1)首先利用setLayout(null)语句将容器的布局设置为null布局(空布局)。 2)再调用组件的setBounds(int x, int y, int width,int height)方法设置组件在容器中的大小和位置,单位均为像素。 x为控件左边缘离窗体左边缘的距离 y为控件上边缘离窗体上边缘的距离 width为控件宽度 height为控件高度 实例:使用空布局精确定位组件的位置 // NullLayoutDemo.java

import java.awt.*; import javax.swing.*; public class NullLayoutDemo{ JFrame fr; JButton a,b; NullLayoutDemo() { fr = new JFrame(); fr.setBounds(100,100,250,150); //设置窗体为空布局 fr.setLayout(null); a=new JButton("按钮a"); b=new JButton("按钮b"); fr.getContentPane().add(a); //设置按钮a的精确位置 a.setBounds(30,30,80,25);

fr.getContentPane().add(b); b.setBounds(150,40,80,25); fr.setTitle("NullLayoutDemo"); fr.setVisible(true); fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fr.setLocationRelativeTo(null); //让窗体居中显示} public static void main(String args[]){ new NullLayoutDemo(); } } 程序运行结果如下:

达内实习报告

呼和浩特民族学院学生实习实训报告实习报告题目:UID项目实训 实习实训地点:北京达内科技石景山实训基地 所在系:计算机系 专业:计算机科学与技术(软件) 学号:12000310 班级:12级软件二班 姓名:王静 指导教师:欧艳鹏 实习实训起止时间:2015年12月7日-2016年1月15日实习实训报告提交时间:2016年1月16日 教务处制

实习实训主要内容: 主要实训内容:UI设计阶段和Web前端部分网页设计阶段。 2015年12月,我们在学校的安排下来到北京达内科技石景山实训基地开始了为期三周的UI 实训。 开课的第一天,老师为我们举行了非常热烈的开营仪式。老师告诉我们在以后的工作中团队合作是非常重要的。于是给我们分成了五组,每一横行的同学为一组。分完组后又让我们在一张白纸上画下自己小组的图标和口号。最后还要展示给大家并说出为什么设计出这样的图标和口号。最后完成的要接受惩罚——唱歌。在经过紧张的讨论之后,我们组选出康雪娇作为我们组的组长,我们在组长康雪娇的带领下组建了“DREAM TEAM”组合,并且共同绘制属于我们的图标及口号。我们的图标是我们小组9个人的手指连成一个圈,每个人在自己的手指中写下自己名字的首字母;我们的口号是:即使一无所有,梦想一定要有。在后来的展示中获得了老师和同学们的好评。 在热烈的开营仪式结束后我们便开始了紧张的学习生活。第一阶段是UI设计,第一位老师陈老师先给我们讲解了每个Photoshop工具的用法及一些工具的快捷方式,然后我们跟着老师的步伐进行相应的练习,以便更好的掌握各个工具的用法,比如用钢笔抠图、做书的封面或海报等。在刘老师的带领下我们用三天的时间学会了很多关于Photoshop的基本操作并且能独自做出书的封面或海报。当第一次自己做出一个封面的时候觉得自己很厉害,满满的都是成就感。3天很快就过去了,第四天教我们的老师换了一位,第二位老师是王璐老师,她先带我们顺了一遍刘老师教过我们的知识,又在其基础上又教了我们一些新的知识,比如图层蒙版的使用等。王璐老师交了我们两周,在最后的两天里,我们按老师的要求做出了一组手机图标。我们组做的手机图标的主题是:果然有你。这次的设计理念是以水果为主题。之所以选择水果作为主题是源于人们目前的健康状态。在每日的社会竞争压力下,人们的健康出现了亚健康的状态。而水果含有多种维生素种类能够补充人们流失的营养!当这款主题应用到手机上的时候,会给人一种警示人们补充营养的警示作用。同时,我们在色彩上选用缓解视力疲劳的绿色为主要颜色。在做这组手机图标的时候,我们先用老师讲过的知识做了一组自己喜欢的底色块,因为是水果主题便选用绿色作为底色块的颜色。然后我们利用课下休息时间下载了很多有关于水果的图片,在经过讨论后小组每人做三个图标,最后汇总在一起成为一组完整的图标。 在学习UI设计即将结束的时候,老师带我们到与达内公司合作的企业参观并给我们讲解了一些关于企业需要什么样的人才的一些信息。在参观完企业后老师还带我们到达内的其他实训基地进行参观,让我们更深的了解了达内公司发展,了解了达内公司的教学方法和理念。在参观JAVA 培训基地时还给我们请了一位达内非常优秀的JAVA讲师给我们讲解了关于JAVA的发展和前景,并且还讲解了达内公司的教学都有哪几个部分、怎么教、用多长时间能学习结束、能达到什么样的水平和工作后的薪资情况等诸多问题。我们用了一整天的时间参观了达内公司所有的实训基地,在晚上回到宿舍后感觉收获很多。

Java3_6_图形管理之面板布局(Jpanel)

JPanel 注意:1、属于容器组件,可以加入别的组件 2、默认布局管理器是流式布局 案列: /* * 作者:田停 * 日期:2013 8 7 * 功能:面板组件 */ package com.tt.gui; import java.awt.*; import javax.swing.*; public class Demo5 extends JFrame { //定义组件 JPanel jp1,jp2,jp3; //定义按钮 JButton jb1,jb2,jb3,jb4,jb5,jb6; public static void main(String args[]) { Demo5 tt=new Demo5(); } //构造函数 public Demo5() { //创建组件 jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jb1=new JButton("西瓜"); jb2=new JButton("香蕉"); jb3=new JButton("葡萄"); jb4=new JButton("桔子"); jb5=new JButton("苹果"); jb6=new JButton("李子"); //把JButton放到JPanel里面 jp1.add(jb1); jp1.add(jb2); jp2.add(jb3); jp2.add(jb4); jp2.add(jb5); jp3.add(jb6); //把JPanel组件放到JFrame里面

this.add(jp1,BorderLayout.NORTH); this.add(jp2,BorderLayout.SOUTH); this.add(jb6,BorderLayout.CENTER); //设置属性 this.setSize(300,300); this.setLocation(200,200); this.setTitle("Jpanel"); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); this.setResizable(false); } } 运行结果:

达内java培训学习笔记

达内java培训学习笔记: 下载、安装Eclipse 进入Eclipse项目的主页https://www.360docs.net/doc/068840009.html,,点击Downloads,进入下载页。 Eclipse最新的版本是3.3版,但是3.3版的多国语言翻译包还没有出来,所以我们可以使用一个稍早一点的版本3.2。 点击3.2进入其下载页,这个页面有很多下载连接,包括Eclipse SDK在很多平台上的版本; 这里我们只需要下载eclipse-SDK-3.2-win32.zip将这个文件解压缩到磁盘的目录,如D:\eclipse。 在运行Eclipse之前首先应该安装好JDK,设置好环境变量JAVA_HOME、CLASSPATH和PATH。为D:\eclipse下的eclipse.exe在桌面上建立一个快捷方式。双击快捷方式启动Eclipse。 ================================================================================ ========================== 设置JRE: 1.选择Window->Preferences,然后选择Java->Installed JREs,然后选择jre1.5.0_07,单击Edit按钮. 2.单击Browse按钮,选择JDK的安装路径,然后单击OK确定.这样Eclipse下的JDK就已经设置完成了. ================================================================================ ========================== 第一个Eclipse工程:下面我们编写一个简单的HellWorld程序,步骤如下: 1.选择File->New->Project 2.项目列表选Java Project 3.点击“下一步”; 4.输入项目名称,例如:Java;选择相应的JRE(默认即可); 然后选择字解码文件和源文件分离.

达内实习报告

呼和浩特民族学院学生实习实训报告 实习报告题目:UID项目实训 实习实训地点:北京达内科技石景山实训基地 所在系:计算机系 专业:计算机科学与技术(软件) 学号:12000310 班级:12级软件二班 姓名:王静 指导教师:欧艳鹏 实习实训起止时间:2015年12月7日-2016年1月15日实习实训报告提交时间:2016年1月16日 教务处制

实习实训主要内容: 主要实训内容:UI设计阶段和Web前端部分网页设计阶段。 2015年12月,我们在学校的安排下来到北京达内科技石景山实训基地开始了为期三周的UI 实训。 开课的第一天,老师为我们举行了非常热烈的开营仪式。老师告诉我们在以后的工作中团队 合作是非常重要的。于是给我们分成了五组,每一横行的同学为一组。分完组后又让我们在一张 白纸上画下自己小组的图标和口号。最后还要展示给大家并说出为什么设计出这样的图标和口 号。最后完成的要接受惩罚——唱歌。在经过紧张的讨论之后,我们组选出康雪娇作为我们组的 组长,我们在组长康雪娇的带领下组建了“DREAM TEAM”组合,并且共同绘制属于我们的图标及 口号。我们的图标是我们小组9个人的手指连成一个圈,每个人在自己的手指中写下自己名字的 首字母;我们的口号是:即使一无所有,梦想一定要有。在后来的展示中获得了老师和同学们的 好评。 在热烈的开营仪式结束后我们便开始了紧张的学习生活。第一阶段是UI设计,第一位老师 陈老师先给我们讲解了每个Photoshop工具的用法及一些工具的快捷方式,然后我们跟着老师的 步伐进行相应的练习,以便更好的掌握各个工具的用法,比如用钢笔抠图、做书的封面或海报等。在刘老师的带领下我们用三天的时间学会了很多关于Photoshop的基本操作并且能独自做出书的 封面或海报。当第一次自己做出一个封面的时候觉得自己很厉害,满满的都是成就感。3天很快就过去了,第四天教我们的老师换了一位,第二位老师是王璐老师,她先带我们顺了一遍刘老师 教过我们的知识,又在其基础上又教了我们一些新的知识,比如图层蒙版的使用等。王璐老师交 了我们两周,在最后的两天里,我们按老师的要求做出了一组手机图标。我们组做的手机图标的 主题是:果然有你。这次的设计理念是以水果为主题。之所以选择水果作为主题是源于人们目前 的健康状态。在每日的社会竞争压力下,人们的健康出现了亚健康的状态。而水果含有多种维生 素种类能够补充人们流失的营养!当这款主题应用到手机上的时候,会给人一种警示人们补充营 养的警示作用。同时,我们在色彩上选用缓解视力疲劳的绿色为主要颜色。在做这组手机图标的 时候,我们先用老师讲过的知识做了一组自己喜欢的底色块,因为是水果主题便选用绿色作为底 色块的颜色。然后我们利用课下休息时间下载了很多有关于水果的图片,在经过讨论后小组每人 做三个图标,最后汇总在一起成为一组完整的图标。 在学习UI设计即将结束的时候,老师带我们到与达内公司合作的企业参观并给我们讲解了 一些关于企业需要什么样的人才的一些信息。在参观完企业后老师还带我们到达内的其他实训基 地进行参观,让我们更深的了解了达内公司发展,了解了达内公司的教学方法和理念。在参观JAVA 培训基地时还给我们请了一位达内非常优秀的JAVA讲师给我们讲解了关于JAVA的发展和前景,并且还讲解了达内公司的教学都有哪几个部分、怎么教、用多长时间能学习结束、能达到什么样 的水平和工作后的薪资情况等诸多问题。我们用了一整天的时间参观了达内公司所有的实训基 地,在晚上回到宿舍后感觉收获很多。

相关文档
最新文档