上文中的第28行代码的MyJButton5类的源代码如下:
    package c_port_packageBJteacher;import javax.swing.JButton;public class MyJButton5 extends JButton{
/**
 * 
 */
private static final long serialVersionUID = 1L;
int MyId = 0;
    public MyJButton5(String Button,int Id,int online,int complicatingnum){
     super(Button+":"+complicatingnum);
     MyId = Id;
     if(online == 0){
this.setEnabled(false);
}
else{
this.setEnabled(true);
}
    }
public int getMyId() {
// TODO Auto-generated method stub
return MyId;
}
}    我贴出的代码块1的第218行的MyJButton0的类型的代码如下:
    package c_port_packageBJteacher;/**
 * 
 */import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataOutputStream;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.HashMap;import javax.swing.JButton;/**
 * @author cjco
 * 
 */
public class MyJButton0{
     /**
 * 
 */
public static HashMap<Integer,Complete_ChatForeUIteacherClient> teacherlib = new HashMap<Integer,Complete_ChatForeUIteacherClient>();
public static HashMap<Integer,Complete_ChatForeUIteacherClient> customerlib = new HashMap<Integer,Complete_ChatForeUIteacherClient>();

private static final long serialVersionUID = 1L;
static int complicatingChatNum = 0;
static Integer SendIndex = -1;
String S_PORT_SERVER = "127.0.0.1";
String iPAddress = null;
DataOutputStream dops = null;
//
public MyJButton0(final String teacher_facia,int SysprimaKey) {
InetAddress addr = null;
try {
addr = InetAddress.getLocalHost();
} catch (UnknownHostException e2) {
// TODO Auto-  catch block
e2.printStackTrace();
}
iPAddress = addr.getHostAddress().toString();
SendIndex = new Integer(SysprimaKey);
System.out.println("CJ!!加油!!梦想!!加油!!"+SendIndex+"==============================="+SysprimaKey);
//'cjco'用来进行面向第42行代码的“系统C端到达消息的面向不同C端用户聊天好友窗口的"jta.setText();"语句的
//"准确定位"的开发需求的书写。
Complete_ChatForeUIteacherClient cjco = new Complete_ChatForeUIteacherClient(NoteUserLoginFrame.MyUID,Recv.MySystemserialnum,teacher_facia,SendIndex,"teacher",iPAddress);
cjco.start();
int chatteachernums = MyJButton0.teacherlib.size();
Integer chatteachernumsInteger = new Integer(chatteachernums);
MyJButton0.teacherlib.put(chatteachernumsInteger, cjco);
MyJButton0.complicatingChatNum++; }}    我的本意是:
    让我的帖子一中的“ChineseTeacher类”进行从第24行到44行MyJButton5类型实例的创建,然后让我的“ChineseTeacher类”能够具备用户聊天所需要的“聊天目标好友触点”,以进行聊天功能的实现。
    帖子一中的第144行到253行,我进行了“借助上文中的MyJButton5类型的功能”“捕捉用户点击的按钮对象”的功能实现,我希望能够获得我的用户的点击按钮的编号,从而借助帖子一中的第150行开始的MyJButton0类型的代码书写进行“聊天窗口”的打开和用户下一步功能需求的实现。
    现在,经过了上面我的修改之后并且进行了程序的联机调试,我点击我的好友列表之后,我遇到的场景是:
    
    上述好友列表中的每一个按钮,上面的值,是为Recv.MyJButton0content这个String数组进行承载的,但是,现在,我的第二个聊天好友的列表能够显示:
    
    由于这是我的第一个Java作品,我的经验,是有一些不足的,本提问中的代码,中间很多位置,是可以进行“循环语句的书写”,以达到“简化代码结构”的目的的.
    弟我将在程序调通后进行代码的进一步优化.
    希望能够得到高手的相助:
    我的代码,错误的位置在什么地方?为什么我的好友列表不能够进行:
    
    我想要的“聊天窗口”的打开..?
    怎么修改?
    谢谢高手!!

解决方案 »

  1.   

    方名师姐,现在这个项目,我已经搞了小一年了.
    工期已近迫在眉睫,编码的结构:
    一是这是我的第一个Java作品,自己摸的,没有人带我。
    二是这个作品,大多数时间是在我“通宵达旦的工作”下完成的,是有一些疲劳在工作中进行的。
    三是这个作品,是在我长时间的“多次接力实施”的场景下完成的。
    所以,方名师姐,现在代码的优化,我是放在之后考虑的,现在,我希望能够得到师姐的相助:
        我的错误,怎么修改...?
        我会在这个活儿,交了之后,再按照师姐的所述,将我的码功,再强化,优化!!
         
      

  2.   

    大体上是明白了,不过这代码不复杂,只能说是杂乱。
    第一个,Recv没有正确接收信息。
    第二个,你说的防错问题,要内部加异常抛出的,再判断一个空指针应该就没什么问题了。