解决方案 »

  1.   

    package c_port_packageBJDoctor;import java.awt.event.ActionEvent;public class ChineseTeacherfresh extends JButton implements ActionListener{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    MyJButton000 JB000;
    MyJButton001 JB001;
    MyJButton002 JB002;
    MyJButton003 JB003;
    MyJButton004 JB004;
    MyJButton005 JB005;
    MyJButton006 JB006;
    MyJButton007 JB007;
    MyJButton008 JB008;
    MyJButton009 JB009;
    MyJButton010 JB010;
    ChineseTeacher Localdemo; public ChineseTeacherfresh(MyJButton000 jB0, MyJButton001 jB1,
    MyJButton002 jB2, MyJButton003 jB3, MyJButton004 jB4,
    MyJButton005 jB5, MyJButton006 jB6, MyJButton007 jB7,
    MyJButton008 jB8, MyJButton009 jB9, MyJButton010 jB10,ChineseTeacher demo) {
    // TODO Auto-generated constructor stub
    super("获取好友最新在线状态");
    JB000 = jB0;
    JB001 = jB1;
    JB002 = jB2;
    JB003 = jB3;
    JB004 = jB4;
    JB005 = jB5;
    JB006 = jB6;
    JB007 = jB7;
    JB008 = jB8;
    JB009 = jB9;
    JB010 = jB10;
    Localdemo = demo;
    } @Override
    public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub
    for(int i =0;i<42;i++){
    Recv.MyJButton0content[i] = "CJCO!!加油!!";
    }
    Localdemo.UpdateMyUI();
    if(Recv.Doctoronline[0]==1){
    JB000.setEnabled(true);
    }else{
    JB000.setEnabled(false);
    }
    if(Recv.Doctoronline[1]==1){
    JB001.setEnabled(true);
    }else{
    JB001.setEnabled(false);
    }
    if(Recv.Doctoronline[2]==1){
    JB002.setEnabled(true);
    }else{
    JB002.setEnabled(false);
    }
    if(Recv.Doctoronline[3]==1){
    JB003.setEnabled(true);
    }else{
    JB003.setEnabled(false);
    }
    if(Recv.Doctoronline[4]==1){
    JB004.setEnabled(true);
    }else{
    JB004.setEnabled(false);
    }
    if(Recv.Doctoronline[5]==1){
    JB005.setEnabled(true);
    }else{
    JB005.setEnabled(false);
    }
    if(Recv.Doctoronline[6]==1){
    JB006.setEnabled(true);
    }else{
    JB006.setEnabled(false);
    }
    if(Recv.Doctoronline[7]==1){
    JB007.setEnabled(true);
    }else{
    JB007.setEnabled(false);
    }
    if(Recv.Doctoronline[8]==1){
    JB008.setEnabled(true);
    }else{
    JB008.setEnabled(false);
    }
    if(Recv.Doctoronline[9]==1){
    JB009.setEnabled(true);
    }else{
    JB009.setEnabled(false);
    }
    if(Recv.Doctoronline[10]==1){
    JB010.setEnabled(true);
    }else{
    JB010.setEnabled(false);
    }
    Localdemo.repaint();
    }
    }    我的测试类为:
        package c_port_packageBJTeacher;public class TestCommonailment {
    public static void main(String[] args){
    new ChineseTeacher();
    }
    }    在我运行后,点击我的运行结果中的红色方框:
        
        上述操作的结果是:
        
        请问:
        如果进行代码的修改,能够让我的“贴出代码”的第77行至79行的循环所欲达到的目的:
        让我的每一个JButton按钮,能够更改他的“显示字符串”的显示效果,达到.
        希望得到高手的指导.
      

  2.   

    我就是希望能够得到一个“即时刷新JFrame窗口中我所重写的JButton类的子类”的参数列表传入的数据的方案.
    希望得到高手的指导.
      

  3.   

    希望高手能够以指导我的“贴出代码块1”中的第79行代码的“UpdateMyUI()”方法的写法的方式进行面向我的代码需求进行指导。
        
      

  4.   

    公共 类 TestCommonailment {
        公共 静态 无效 的主要(字串[] args){
            新 ChineseTeacher();
        }
    }
    可以 在这里打个断点,然后用debug模式进去看一下执行过程,你应该是想将11个用户信息显示出来吧,左侧是用户名么,右侧的数字是要显示什么?
      

  5.   

     static MyJButton000 JB0 =  null;
        static MyJButton001 JB1 =  null;
        static MyJButton002 JB2 =  null;
        static MyJButton003 JB3 =  null;
        static MyJButton004 JB4 =  null;
        static MyJButton005 JB5 =  null;
        static MyJButton006 JB6 =  null;
        static MyJButton007 JB7 =  null;
        static MyJButton008 JB8 =  null;
        static MyJButton009 JB9 =  null;
        static MyJButton010 JB10 = null;
    这些值都没有赋值成功,  
        79 public void UpdateMyUI(){ 从这里赋值就没有成功,Recv.MyJButton0content[0],Recv.MyJButton0Teacher_ficia[0],Recv.MyJButton0SystempriKey[0],Recv.Teacheronline[0],Recv.MyJButton0complicatingnum[0]确实这些值都赋值成功了?
    希望对你有用,祝你成功!
      

  6.   

    另一花生小妹,我的按钮的左侧,是“用户的好友用户名”,右侧的数字是“现在用户的好友的"同时聊天好友数"”,我为了让我的用户,能够选择“有空闲的好友进行聊天”.
    另一花生小妹,经过您的指导,我初步得到了思路,现在,我缕一缕我的代码执行流程:
        首先,通过我的测试类,“贴出的代码块3”的代码:
        package c_port_packageBJTeacher;
     
    public class TestCommonailment {
        public static void main(String[] args){
            new ChineseTeacher();
        }
    }
        调用了“代码块1”中的“第34行”代码的“ChineseTeacher()”的构造方法.
        进而执行:
        public ChineseTeacher(){
    //        this.setVisible(false);
            this.setTitle("请选择您的语文家庭教师");
            jp.setLayout(new GridLayout(12,0));
            JB0 = new MyJButton000(Recv.MyJButton0content[0],Recv.MyJButton0Teacher_ficia[0],Recv.MyJButton0SystempriKey[0],Recv.Teacheronline[0],Recv.MyJButton0complicatingnum[0]);                                                                
            JB1 =  new MyJButton001(Recv.MyJButton0content[1],Recv.MyJButton0Teacher_ficia[1],Recv.MyJButton0SystempriKey[1],Recv.Teacheronline[1],Recv.MyJButton0complicatingnum[1]);                                                                
            JB2 =  new MyJButton002(Recv.MyJButton0content[2],Recv.MyJButton0Teacher_ficia[2],Recv.MyJButton0SystempriKey[2],Recv.Teacheronline[2],Recv.MyJButton0complicatingnum[2]);                                                                
            JB3 =  new MyJButton003(Recv.MyJButton0content[3],Recv.MyJButton0Teacher_ficia[3],Recv.MyJButton0SystempriKey[3],Recv.Teacheronline[3],Recv.MyJButton0complicatingnum[3]);                                                                
            JB4 =  new MyJButton004(Recv.MyJButton0content[4],Recv.MyJButton0Teacher_ficia[4],Recv.MyJButton0SystempriKey[4],Recv.Teacheronline[4],Recv.MyJButton0complicatingnum[4]);                                                                
            JB5 =  new MyJButton005(Recv.MyJButton0content[5],Recv.MyJButton0Teacher_ficia[5],Recv.MyJButton0SystempriKey[5],Recv.Teacheronline[5],Recv.MyJButton0complicatingnum[5]);                                                                
            JB6 =  new MyJButton006(Recv.MyJButton0content[6],Recv.MyJButton0Teacher_ficia[6],Recv.MyJButton0SystempriKey[6],Recv.Teacheronline[6],Recv.MyJButton0complicatingnum[6]);                                                                
            JB7 =  new MyJButton007(Recv.MyJButton0content[7],Recv.MyJButton0Teacher_ficia[7],Recv.MyJButton0SystempriKey[7],Recv.Teacheronline[7],Recv.MyJButton0complicatingnum[7]);                                                                
            JB8 =  new MyJButton008(Recv.MyJButton0content[8],Recv.MyJButton0Teacher_ficia[8],Recv.MyJButton0SystempriKey[8],Recv.Teacheronline[8],Recv.MyJButton0complicatingnum[8]);                                                                
            JB9 =  new MyJButton009(Recv.MyJButton0content[9],Recv.MyJButton0Teacher_ficia[9],Recv.MyJButton0SystempriKey[9],Recv.Teacheronline[9],Recv.MyJButton0complicatingnum[9]);                                                                
            JB10 =  new MyJButton010(Recv.MyJButton0content[10],Recv.MyJButton0Teacher_ficia[10],Recv.MyJButton0SystempriKey[10],Recv.Teacheronline[10],Recv.MyJButton0complicatingnum[10]);                                                                 
            jb882 =  new ChineseTeacherfresh(JB0,JB1,JB2,JB3,JB4,JB5,JB6,JB7,JB8,JB9,JB10,this);
            jp.add(JB0);
            jp.add(JB1);
            jp.add(JB2);
            jp.add(JB3);
            jp.add(JB4);
            jp.add(JB5);
            jp.add(JB6);
            jp.add(JB7);
            jp.add(JB8);
            jp.add(JB9);
            jp.add(JB10);
            jp.add(jb882);
            this.add(jp);
            JB0.setFont(fnt);
            JB1.setFont(fnt);
            JB2.setFont(fnt);
            JB3.setFont(fnt);
            JB4.setFont(fnt);
            JB5.setFont(fnt);
            JB6.setFont(fnt);
            JB7.setFont(fnt);
            JB8.setFont(fnt);
            JB9.setFont(fnt);
            JB10.setFont(fnt);
            jb882.setFont(fnt);
            setBounds(200,110,1008,568);
            this.setVisible(true);
        }
        我贴出的代码块1,他的成员作用域的:
          static MyJButton000 JB0 =  null;
        static MyJButton001 JB1 =  null;
        static MyJButton002 JB2 =  null;
        static MyJButton003 JB3 =  null;
        static MyJButton004 JB4 =  null;
        static MyJButton005 JB5 =  null;
        static MyJButton006 JB6 =  null;
        static MyJButton007 JB7 =  null;
        static MyJButton008 JB8 =  null;
        static MyJButton009 JB9 =  null;
        static MyJButton010 JB10 = null;
        上述按钮对象的定义,是在本类型被加载的时候,就已经被加载到了“栈内存区”中了.
        之后,我的“new ChineseTeacher()”方法在运行的时候,会让我的每一个按钮类的实例,(上文中的JB0到JB10这11个用户的好友聊天触点),得到自己在“堆内存”中的“对应的数据结构”,在上述“ChineseTeacher()构造方法”执行到了本帖中的“代码块1”中的“第16行”之后,jb882按钮的构造方法,通过传址,将每一个按钮,(JB0到JB10共计11个按钮),的地址,传到了自己的类体之中,这个时候,在我点击了下图中的“红色方框”中的按钮:
        
        也就是上文中的“jb882”按钮之后,我的本论坛1#楼的代码块的第44行的“点击事件应对方法”的代码:
        public void actionPerformed(ActionEvent arg0) {
            // TODO Auto-generated method stub
            for(int i =0;i<42;i++){
                Recv.MyJButton0content[i] = "CJCO!!加油!!";
            }
            Localdemo.UpdateMyUI();
            if(Recv.Doctoronline[0]==1){
                JB000.setEnabled(true);
            }else{
                JB000.setEnabled(false);
            }
            if(Recv.Doctoronline[1]==1){
                JB001.setEnabled(true);
            }else{
                JB001.setEnabled(false);
            }
            if(Recv.Doctoronline[2]==1){
                JB002.setEnabled(true);
            }else{
                JB002.setEnabled(false);
            }
            if(Recv.Doctoronline[3]==1){
                JB003.setEnabled(true);
            }else{
                JB003.setEnabled(false);
            }
            if(Recv.Doctoronline[4]==1){
                JB004.setEnabled(true);
            }else{
                JB004.setEnabled(false);
            }
            if(Recv.Doctoronline[5]==1){
                JB005.setEnabled(true);
            }else{
                JB005.setEnabled(false);
            }
            if(Recv.Doctoronline[6]==1){
                JB006.setEnabled(true);
            }else{
                JB006.setEnabled(false);
            }
            if(Recv.Doctoronline[7]==1){
                JB007.setEnabled(true);
            }else{
                JB007.setEnabled(false);
            }
            if(Recv.Doctoronline[8]==1){
                JB008.setEnabled(true);
            }else{
                JB008.setEnabled(false);
            }
            if(Recv.Doctoronline[9]==1){
                JB009.setEnabled(true);
            }else{
                JB009.setEnabled(false);
            }
            if(Recv.Doctoronline[10]==1){
                JB010.setEnabled(true);
            }else{
                JB010.setEnabled(false);
            }
            Localdemo.repaint();
        }
        上述方法中首先执行的代码,就是每一个“按钮实例”,(JB0到JB10共计11个按钮),的“展示给用户的内容”,的Text数据的承载容器:
        String数组通过上述第3至5行代码得到了自己的数据:
        for(int i =0;i<42;i++){
                Recv.MyJButton0content[i] = "CJCO!!加油!!";
            }
        之后通过上文代码之下的第6行代码:
        进行自己的代码体:
        public void UpdateMyUI(){
            this.remove(JB0);
            JB0 = new MyJButton000(Recv.MyJButton0content[0],Recv.MyJButton0Teacher_ficia[0],Recv.MyJButton0SystempriKey[0],Recv.Teacheronline[0],Recv.MyJButton0complicatingnum[0]);                                                                
            this.add(JB0);
            this.remove(JB1);
            JB1 = new MyJButton001(Recv.MyJButton0content[1],Recv.MyJButton0Teacher_ficia[1],Recv.MyJButton0SystempriKey[1],Recv.Teacheronline[1],Recv.MyJButton0complicatingnum[1]);                                                                
            this.add(JB1);
            this.remove(JB2);
            JB2 = new MyJButton002(Recv.MyJButton0content[2],Recv.MyJButton0Teacher_ficia[2],Recv.MyJButton0SystempriKey[2],Recv.Teacheronline[2],Recv.MyJButton0complicatingnum[2]); 
            this.add(JB2);
            this.remove(JB3);
            JB3 = new MyJButton003(Recv.MyJButton0content[3],Recv.MyJButton0Teacher_ficia[3],Recv.MyJButton0SystempriKey[3],Recv.Teacheronline[3],Recv.MyJButton0complicatingnum[3]); 
            this.add(JB3);
            this.remove(JB2);
            JB3 = new MyJButton003(Recv.MyJButton0content[3],Recv.MyJButton0Teacher_ficia[3],Recv.MyJButton0SystempriKey[3],Recv.Teacheronline[3],Recv.MyJButton0complicatingnum[3]); 
            this.add(JB3);
            this.remove(JB4);
            JB4 = new MyJButton004(Recv.MyJButton0content[4],Recv.MyJButton0Teacher_ficia[4],Recv.MyJButton0SystempriKey[4],Recv.Teacheronline[4],Recv.MyJButton0complicatingnum[4]); 
            this.add(JB4);
            this.remove(JB5);
            JB5 = new MyJButton005(Recv.MyJButton0content[5],Recv.MyJButton0Teacher_ficia[5],Recv.MyJButton0SystempriKey[5],Recv.Teacheronline[5],Recv.MyJButton0complicatingnum[5]); 
            this.add(JB5);
            this.remove(JB6);
            JB6 = new MyJButton006(Recv.MyJButton0content[6],Recv.MyJButton0Teacher_ficia[6],Recv.MyJButton0SystempriKey[6],Recv.Teacheronline[6],Recv.MyJButton0complicatingnum[6]); 
            this.add(JB6);
            this.remove(JB7);
            JB7 = new MyJButton007(Recv.MyJButton0content[7],Recv.MyJButton0Teacher_ficia[7],Recv.MyJButton0SystempriKey[7],Recv.Teacheronline[7],Recv.MyJButton0complicatingnum[7]); 
            this.add(JB7);
            this.remove(JB8);
            JB8 = new MyJButton008(Recv.MyJButton0content[8],Recv.MyJButton0Teacher_ficia[8],Recv.MyJButton0SystempriKey[8],Recv.Teacheronline[8],Recv.MyJButton0complicatingnum[8]); 
            this.add(JB8);
            this.remove(JB9);
            JB9 = new MyJButton009(Recv.MyJButton0content[9],Recv.MyJButton0Teacher_ficia[9],Recv.MyJButton0SystempriKey[9],Recv.Teacheronline[9],Recv.MyJButton0complicatingnum[9]); 
            this.add(JB9);
            this.remove(JB10);
            JB10 = new MyJButton010(Recv.MyJButton0content[10],Recv.MyJButton0Teacher_ficia[10],Recv.MyJButton0SystempriKey[10],Recv.Teacheronline[10],Recv.MyJButton0complicatingnum[10]); 
            this.add(JB10);
            jb882 = new ChineseTeacherfresh(JB0,JB1,JB2,JB3,JB4,JB5,JB6,JB7,JB8,JB9,JB10,JB11,JB12,JB13,JB14,this);
            this.invalidate();
            this.repaint();
            this.setVisible(true);
        }
        (请另一花生小妹,允许我将之后的内容,写到下一贴中)
      

  7.   

    的执行,这个方法的逻辑是:
        首先将本JFrame窗口的“remove()方法调用”,删除我的按钮实例,然后进行我的按钮的重建,并且,将我重建的按钮add()到我的JFrame窗口中,并且,在最后,我将我的每一个按钮实例的地址,再次添加到了我ChineseTeacherfresh类的构造方法之中,传入了地址.
        让我的新创建出来的JFrame窗口,他的每一个组件的属性与相互之间的布局,都能够:“符合我的ChineseTeacher类的ChineseTeacher()构造方法”的设计思路.
        另一花生小妹,这个时候,我在点击了我的“ChineseTeacherfresh类”所创建出的“jb882”按钮对象了之后,应该能够得到:
        自己的每一个“按钮实例”,(JB0到JB10共计11个按钮),均被重新创建,并且,得到了自己的第一个参数:MyJButton000(Recv.MyJButton0content[0],Recv.MyJButton0Teacher_ficia[0],Recv.MyJButton0SystempriKey[0],Recv.Teacheronline[0],Recv.MyJButton0complicatingnum[0]);  
        “本按钮的展示给用户自己好友的用户名”,的数据的JFrame窗口的吧?
        那么,我的“经过UpdateMyUI()方法重构”的我的“ChineseTeacher类”的JFrame用户的好友窗口,应该就是下面的运行效果吧?
        
        但是,在我点击“获取好友最新在线状态”按钮之后,我得到的状态,还是下面图片的状态:
        
        希望能够得到另一花生小妹的点拨:
        我的程序,问题出在什么地方了?
        并且,如何修改..?
        也拜托CSDN中的高手的不吝赐教了.
        谢谢另一花生小妹,谢谢CSDN中的各路高人!!
      

  8.   

    大家好,我是本楼的楼主的一个马甲,我再补充一句最后希望帮助我的高手能够注意的点:
        希望大侠能够尽可能从“我的写出一个UpdateMyUI()方法在ChineseTeacher类”中的思路,进行我需要的:“即时刷新JFrame窗口中我所重写的JButton类的子类”的参数列表传入的数据的显示效果的解决方案的角度,进行我遇到的问题的点拨指导.
    谢谢另一花生小妹,谢谢CSDN中的诛路神佛!!