在线聊天系统总结

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()是让代码变得整齐一些

猜你喜欢

转载自blog.csdn.net/yan_dan/article/details/82019036
今日推荐