首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

求好手点拨一个“Swing技术的”IM系统的“刷新好友列表”的工程实现方案

2014-01-19 
求高手点拨一个“Swing技术的”IM系统的“刷新好友列表”的工程实现方案.高手,您好:我在写一个IM通信的Swing技

求高手点拨一个“Swing技术的”IM系统的“刷新好友列表”的工程实现方案.
高手,您好:
    我在写一个IM通信的Swing技术的工具,现在我在做好友列表.
    :
    我的好友列表的结构为:
    采用一个JFrame类的子类,显示“总界面”,采用多个JButton类的子类做“触发本界面中的好友分类”的“触点”.
    点击某一个“触点”后,能够让我的系统将我的用户待到“具体用户选择的分类的好友所在的一个JFrame子类所定义的窗口”.这个JFrame子类所定义的相对于“总界面”的好友分类的子窗口中,也排列这用户的十几位好友的“JButton类型的子类”作为用户选择某一位好友进行聊天的“触点”,能够让用户点击后,就可以打开“聊天窗口”与自己的好友聊天.
    
    现在我遇到的问题是:
    无法我的首先登录到系统中的用户的好友列表,在我的之后登录系统的用户登录系统后,能够让我的系统,更新我的C端第一位登录系统地用户的“好友列表”为可用.
    现在,经过我的一番修改后,我的系统能够:
    在我的用户首先登录后,如果该用户不打开具体某一分类的好友的JFrame子窗口,而选择等待.
    这个时间点上,其他的用户如果登陆,并且成功后,这个时间点之后,第一为用户就能够打开好友列表后看到“新登录的用户的JButton按钮为:可用”了.
    但是,如果首先登陆系统的用户在之后的用户登陆之前,若打开了自己的好友列表的JFrame子窗口,(就是“含有大量好友聊天触点”的具体的陈列了用户多位好友的JButton类的子类实例的JFrame子窗口),的话,就会导致:
    “所有的后来的好友”“不论之后再来多少回”,整个界面中,就只有首先来到的好友的JButton按钮的子类所定义的按钮能够可用,之后的好友,能够看到在自己登陆系统之前登陆的好友,但是看不到在自己登陆系统之后登陆系统的好友.
    我处理上述功能的服务器端,是采用了一个“用户登陆验证线程”:一旦看到“是本系统的用户”时,服务器就会向自己的所有好友发出“本用户的用户系统编号”以及“本用户的在线状态”:
    0表示离线.
    1表示在线.
    上述服务器端的代码,我觉得没有问题.
    现在的问题应该是由于C端的“更新好友列表”的代码结构的不足导致了问题的出现.
    我的处理C端更新好友界面的子线程部分代码如下:
    

package c_port_packageBJteacher;
  
public class ManageLocalteacherJButtonOnlineState{
    String LocalMyWorkNum = "";
    int LocalMyOnlineState = 0;
      
    public ManageLocalteacherJButtonOnlineState(String MyWorkNum,String MyOnlineState){
        LocalMyWorkNum = MyWorkNum;
        LocalMyOnlineState = Integer.parseInt(MyOnlineState);
    }
      
    public void start() throws Exception{
        switch(Integer.parseInt(LocalMyWorkNum)){
        //语文教师
        case 0:
        {
            if(LocalMyOnlineState==0){
                Recv.teacheronline[0]=0;
                ChineseTeacher.JB0.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[0]=1;
                ChineseTeacher.JB0.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 1:
        {
            if(LocalMyOnlineState==0){
                Recv.teacheronline[1]=0;
                ChineseTeacher.JB1.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[1]=1;
                ChineseTeacher.JB1.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 2:
        {
            if(LocalMyOnlineState==0){
                Recv.teacheronline[2]=0;
                ChineseTeacher.JB2.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[2]=1;
                ChineseTeacher.JB2.setEnabled(true);


                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 3:
        {
            if(LocalMyOnlineState==0){
                Recv.teacheronline[3]=0;
                ChineseTeacher.JB3.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[3]=1;
                ChineseTeacher.JB3.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 4:
        {    
        if(LocalMyOnlineState==0){
            Recv.teacheronline[4]=0;
            ChineseTeacher.JB4.setEnabled(false);
            MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[4]=1;
                ChineseTeacher.JB4.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 5:
        {
            if(LocalMyOnlineState==0){
            Recv.teacheronline[5]=0;
            ChineseTeacher.JB5.setEnabled(false);
            MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[5]=1;
                ChineseTeacher.JB5.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 6:
        {
            if(LocalMyOnlineState==0){
                Recv.teacheronline[6]=0;
                ChineseTeacher.JB6.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[6]=1;
                ChineseTeacher.JB6.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 7:
        {
            if(LocalMyOnlineState==0){
            Recv.teacheronline[7]=0;
            ChineseTeacher.JB6.setEnabled(false);
            MyUserMainUI.ali1.get(0).al1.get(0).repaint();


        }else{
                Recv.teacheronline[6]=1;
                ChineseTeacher.JB6.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 8:
        {
            if(LocalMyOnlineState==0){
                Recv.teacheronline[8]=0;
                ChineseTeacher.JB8.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[8]=1;
                ChineseTeacher.JB8.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 9:
        {
        if(LocalMyOnlineState==0){
            Recv.teacheronline[9]=0;
            ChineseTeacher.JB9.setEnabled(false);
            MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[9]=1;
                ChineseTeacher.JB9.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 10:
        {
            if(LocalMyOnlineState==0){
                Recv.teacheronline[10]=0;
                ChineseTeacher.JB10.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[10]=1;
                ChineseTeacher.JB10.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();Recv.teacheronline[11]=0;
                ChineseTeacher.JB11.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 11:
        {
            if(LocalMyOnlineState==0){
                  
            }else{
                Recv.teacheronline[11]=1;
                ChineseTeacher.JB11.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }case 12:
        {


            if(LocalMyOnlineState==0){
                Recv.teacheronline[12]=0;
                ChineseTeacher.JB12.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[12]=1;
                ChineseTeacher.JB12.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 13:
        {
            if(LocalMyOnlineState==0){
                Recv.teacheronline[13]=1;
                ChineseTeacher.JB13.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[13]=1;
                ChineseTeacher.JB13.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 14:
        {
            if(LocalMyOnlineState==0){
                Recv.teacheronline[14]=0;
                ChineseTeacher.JB14.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[14]=1;
                ChineseTeacher.JB14.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 15:
        {
            if(LocalMyOnlineState==0){
                Recv.teacheronline[15]=0;
                ChineseTeacher.JB15.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[15]=1;
                ChineseTeacher.JB15.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 16:
        {
            if(LocalMyOnlineState==0){
                Recv.teacheronline[16]=0;
                ChineseTeacher.JB16.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[16]=1;


                ChineseTeacher.JB16.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 17:
        {
            if(LocalMyOnlineState==0){
                Recv.teacheronline[17]=0;
                ChineseTeacher.JB17.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[17]=1;
                ChineseTeacher.JB17.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
        case 18:
        {
            if(LocalMyOnlineState==0){
                Recv.teacheronline[18]=0;
                ChineseTeacher.JB18.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[18]=1;
                ChineseTeacher.JB18.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }
            break;
        }
}
}


    由于篇幅原因,请允许我将现场环境写在下一帖上。
    谢谢高手!!
    求好手点拨一个“Swing技术的”IM系统的“刷新好友列表”的工程实现方案
    
[解决办法]
问题没细看...首行你那200多行的代码...基本上都一样..用for 只要几行就能了..刚才要case出那么行....
[解决办法]
 if(LocalMyOnlineState==0){
                Recv.teacheronline[Integer.parseInt(LocalMyWorkNum)]=0;
                ChineseTeacher.JB18.setEnabled(false);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }else{
                Recv.teacheronline[Integer.parseInt(LocalMyWorkNum)]=1;
                ChineseTeacher.JB18.setEnabled(true);
                MyUserMainUI.ali1.get(0).al1.get(0).repaint();
            }

热点排行