编程方法学 - 公开课学习笔记(七)
2011-08-06 22:29
330 查看
第19课 接口,Map,Collection和Iterator 2011.8.5、6
接口:set of methods, common functionality among set fo classes.继承方式是有层次关系,子类和父类的关系,而接口只是某些共性的实现。
Map: <key,vaule>是一个接口。在我的以往开发,是经常用户存储数据。implements这个接口,有HashMap<T,T>(这个我经常用),Key和value都需要是对象。可以创建对象Interface a = new MyClass();
Collection:同样也是一个接口。ArrayList是它的一个实现类。
Iterator:也是一个接口,对于collection都具有Iterator的接口。list throuth set of values,可以持续地扫描内容,方法有hasNext(),next(), remove()。迭代器可以使用简单扫描方式,例如对于一个ArrayList list,可以用Iterator<String> it=list.iterator();。Map中key是collection(可以同keySet())方法来获取,所有可以通过Iterator(例如phonebook.keySet().iterator())来扫描key,进而可以遍历Map的数据。
在java5.0之后,有一个新的for循环的写法,使用iterator方式(按常规,我们一般都是通过while(it.hasNext( it.net())){};的方式的方式),由于iterator出现在Collection中,直接写为:for(Type name:Collection){}。例如for(String name: phonebook.keySet()){},在循环体中,name就是为依次扫描iterator得到的值。ArrayList是一个Collection,所以可以for(String
name:list){}这样的方式。有人称之为for each结构,当然名字并不重要。
第20课 图形用户界面GUI 2011.8.8
介绍Java的swing的widget的使用能够方式,这里称为interactor。对于个ConsoleProgram而言,右图是Swing的布局,如果持续两个控件要求是South,会自动布局为从左至右的方式。
Swing的布局还可以,以前用过做一个后台系统,看起来风格清新,不错。这里面讲的,我以前没有注意的是JComboBox是可以加入新的选项,setEditable(true),不过一般不需要如此处理。
介绍了JButton, JComboBox, JRadioButton。
第21课 Interactor和Listener回顾 2011.8.9
通过Listener来检测Interactor的事件。例如addActionListeners()用于检测按钮,并通过ActionPerformed(ActionEvent e)中触发处理。 通过e.getActionCommand()来获取Button的text内容,以判断哪个button触发操作。e.getSource()这直接返回触发动作的对象,可以是否==某个对象来判断。
介绍了JTextField,如果类extends Program(或者Console Program),可通过tf.addActionListener(this)来添加监听器,输入文字后按“Enter”实现事件触发。同样在ActionPerformed(ActionEvent e)中加入触发处理内容。可以为TextField指定一个命令,通过setActionCommand(),也可以通过检查名字来判断是那个对象触发。IntField和JTextField类似,区别是只能输入整数。
接着介绍Layout。GridLayout。setLayout(...);还有TableLayout,TableLayout中的控件大小不随着size变化而自动改变,而GridLayout会布满整个空间。
上一课讲了ConsolePragram的布局,对于CENTER,也是可以setLayout(...),而console的文本输入是自动作为第一个element的,此外将GCavas作为element加入。
相关链接:我的与编程思想相关的文章
接口:set of methods, common functionality among set fo classes.继承方式是有层次关系,子类和父类的关系,而接口只是某些共性的实现。
Map: <key,vaule>是一个接口。在我的以往开发,是经常用户存储数据。implements这个接口,有HashMap<T,T>(这个我经常用),Key和value都需要是对象。可以创建对象Interface a = new MyClass();
Collection:同样也是一个接口。ArrayList是它的一个实现类。
Iterator:也是一个接口,对于collection都具有Iterator的接口。list throuth set of values,可以持续地扫描内容,方法有hasNext(),next(), remove()。迭代器可以使用简单扫描方式,例如对于一个ArrayList list,可以用Iterator<String> it=list.iterator();。Map中key是collection(可以同keySet())方法来获取,所有可以通过Iterator(例如phonebook.keySet().iterator())来扫描key,进而可以遍历Map的数据。
在java5.0之后,有一个新的for循环的写法,使用iterator方式(按常规,我们一般都是通过while(it.hasNext( it.net())){};的方式的方式),由于iterator出现在Collection中,直接写为:for(Type name:Collection){}。例如for(String name: phonebook.keySet()){},在循环体中,name就是为依次扫描iterator得到的值。ArrayList是一个Collection,所以可以for(String
name:list){}这样的方式。有人称之为for each结构,当然名字并不重要。
第20课 图形用户界面GUI 2011.8.8
介绍Java的swing的widget的使用能够方式,这里称为interactor。对于个ConsoleProgram而言,右图是Swing的布局,如果持续两个控件要求是South,会自动布局为从左至右的方式。
Swing的布局还可以,以前用过做一个后台系统,看起来风格清新,不错。这里面讲的,我以前没有注意的是JComboBox是可以加入新的选项,setEditable(true),不过一般不需要如此处理。
介绍了JButton, JComboBox, JRadioButton。
第21课 Interactor和Listener回顾 2011.8.9
通过Listener来检测Interactor的事件。例如addActionListeners()用于检测按钮,并通过ActionPerformed(ActionEvent e)中触发处理。 通过e.getActionCommand()来获取Button的text内容,以判断哪个button触发操作。e.getSource()这直接返回触发动作的对象,可以是否==某个对象来判断。
介绍了JTextField,如果类extends Program(或者Console Program),可通过tf.addActionListener(this)来添加监听器,输入文字后按“Enter”实现事件触发。同样在ActionPerformed(ActionEvent e)中加入触发处理内容。可以为TextField指定一个命令,通过setActionCommand(),也可以通过检查名字来判断是那个对象触发。IntField和JTextField类似,区别是只能输入整数。
接着介绍Layout。GridLayout。setLayout(...);还有TableLayout,TableLayout中的控件大小不随着size变化而自动改变,而GridLayout会布满整个空间。
上一课讲了ConsolePragram的布局,对于CENTER,也是可以setLayout(...),而console的文本输入是自动作为第一个element的,此外将GCavas作为element加入。
相关链接:我的与编程思想相关的文章
相关文章推荐
- 编程方法学 - 公开课学习笔记(八)
- 编程方法学 - 公开课学习笔记(二)
- 编程方法学 - 公开课学习笔记(三)
- 编程方法学 - 公开课学习笔记(四)
- 编程方法学 - 公开课学习笔记(九)
- 编程方法学 - 公开课学习笔记(一)
- 【编程范式】斯坦福公开课-学习笔记1
- [零散篇]Java学习笔记---Java的Socket网络编程以及多线程
- JS DOM编程艺术——动态创建标记—— JS学习笔记2015-7-13(第83天)
- 百度互联网技术公开课学习笔记
- 网络编程学习笔记之---WebClient
- Delphi的学习笔记十五——数据库编程1
- ASP.NET 3.5核心编程学习笔记(14):DataAdapter
- java网络编程学习笔记
- 游戏手柄(JoyStick)编程学习笔记(1)
- UNIX环境编程学习笔记(28)——多线程编程(三):线程的取消
- JAVA学习笔记- 网络编程登录实例
- 【linux高级环境编程学习笔记三】共享内存通信
- JAVA编程思想学习笔记(一)
- Android传感器编程学习笔记(二)