您的位置:首页 > 编程语言

编程方法学 - 公开课学习笔记(七)

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加入。

相关链接:我的与编程思想相关的文章
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: