上述代码第257行的“MyUserMainUI,就是文首的“用户主界面”的类型。第257行的ArrayList的实例alil,是在“用户主界面中定义的一个被泛型限制为"只能够装入:ChatFriendList类型的ArrayList类型的实例"”,上述代码第257行的“al1”是一个被泛型限制为“只能装入ChineseTeacher类型”的ArrayList对象集合的实例,他装入的是“我的满载了各种用户的好友JButton按钮子类的聊天窗口打开触点”的“ChineseTeacher”的聊天界面.
    
    其中饱含了“用户的好友”分别陈列在上述JFrame窗口的两列.
    并且,我又在C端的程序入口不远的位置,添加了一个:进行“更新用户C端的好友列表”的功能实施.
    她的源代码如下:
    public class TimerfreshUI extends Thread{
public TimerfreshUI(){

}

public void run(){
while(true){
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(ManageC_port_MDSpara0Channel_Thread.isal0open){
ManageC_port_MDSpara0Channel_Thread.al0.get(0).repaint();
if(MyUserMainUI.isal1open){
if(ManageC_port_MDSpara0Channel_Thread.obj1.isal1open){
ManageC_port_MDSpara0Channel_Thread.obj1.al1.get(0).repaint();
}
}
if(MyUserMainUI.isal1open){
if(ManageC_port_MDSpara0Channel_Thread.al0.get(0).al1.get(0).isal1open){
MyUserMainUI.ali1.get(0).al1.get(0).repaint();
}
}
}
}
}
}    但是,现在我的系统,客户端在登陆后,还是原来的问题:
    收先登录的用户想要看到之后登陆的用户,必须进行“不打开好友列表”,等到每一位用户都上线后,再打开好友列表,才能看到自己的“全部在线好友的在线状态”:“每一个好友的聊天触点”:我重写的JButton类的子类,是为“可用”的状态.
    如果我的用户在登陆后不久,打开了好友列表:
    “一个JFrame子类的窗口”,那么,这个窗口中所有的我重写的JButton类的子类的“用户好友聊天触点”,都将是“只有在这位用户的"打开好友JFrame列表”的动作出现的时间点之前登陆的用户,才能够被这个好友列表:“JFrame窗口显示为"可用"的状态”.
    希望高手能够点拨:
    已经显示在一个打开的JFrame窗口中的JButton按钮,如果他的状态为:“setEnabled(false);”的话,我要怎么做,能够让这个JFrame窗口,“在用户的眼前”,接收到服务器传来的“本用户一位好友已经上线”的数据后,能够“让用户眼睁睁地”看到本按钮的状态:
    “从setEnabled(false);”被修改成为“setEnabled(true);”的状态与UI变化.
    如果我想要完成这个功能,需要定义哪些代码功能与结构,能够实现..?
    谢谢高手!!

解决方案 »

  1.   

    问题没细看...首行你那200多行的代码...基本上都一样..用for 只要几行就能了..刚才要case出那么行....
      

  2.   

     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();
                }