1.需要保存的变量,不同方法中都要用到的变量一般设置成成员变量以方便引用。
2.流中的一些方法接受(),的readUTF,wirteUTF()都是阻塞式方法,等到读到为止。
3.Exception的处理也是程序正常执行的一部分,只不过这个是比较特殊的异常处理。并不是说这是一个错误,而是一个特殊情形。
4.当接口(接口)实现了自己的方法,那么他就可以当作是一个类来实例化。按钮监听器中的ActionListener的就是这样的。
例如:下面是ActionListener的匿名类
no.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
confirmBox.setVisible(false);
}
} );
5.try对应的最终中的语句,不论是否有异常都会去执行的(除非有返,破等等特殊情形),不管试语句块正常结束还是异常结束,最后语句块是保证要执行的。如果尝试语句块正常结束,那么在try语句块中的语句都执行完之后,再执行finally语句块。如果try语句块异常结束,try语句块中发生异常那条语句后面的语句就不会被执行了,应该先去相应的catch block做异常处理,然后执行finally语句块。关于finally的详细描述:关于Java中文最后语句块的深度分析
6.socket和连接是不同事物,注意:关闭套接字不会清除它的连接状态。还有就是多看英文,不知道那些人会把英文翻译成什么狗屎
7.静态方法(主)不能调用非静态方法,同一个类内的方法也不行,要想在静态方法中调用非静态方法,需要把外部对象实例化,通过对象调用方法。
public static void main(String[] args)
{
new ChatClient().launchFrame();
}
//执行型主方法
public void launchFrame()
8.GUI部分
* Frame中有布局管理器LayoutManager
*常见有FlowLayout BorderLayout GridLayout CardLayout GridBagLayout
* FlowLayout流水布局
* BorderLayout东西南北中五个区域,是Frame的默认布局管理器
* GridLayout表格布局管理器,按照表格划分新GridLayout(3 ,2); 3行2列
*用法是frame.setLayout(new FlowLayout(FlowLayout.LEFT));
* frame.pack()打包,Frame大小的包着各个组件的大小
*在外面设置setLocation setSize setBounds都会被布局管理器给覆盖,如果要自己设置大小,应该取消布局管理器
*事件监听
*对于按钮,要实现ActionListener这个接口,实现它的actionPerformed()方法,匿名类ActionListener的设计比较好
*当有一堆事件处理一堆匿名类的时候,设计一个方法myEvent()是让代码变得整齐一些
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/28189.html