求点拨一个Java Swing的GUI技术细节. JavaSwinggui更新JFrameJButton 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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按钮,能够更改他的“显示字符串”的显示效果,达到. 希望得到高手的指导. 我就是希望能够得到一个“即时刷新JFrame窗口中我所重写的JButton类的子类”的参数列表传入的数据的方案.希望得到高手的指导. 希望高手能够以指导我的“贴出代码块1”中的第79行代码的“UpdateMyUI()”方法的写法的方式进行面向我的代码需求进行指导。 公共 类 TestCommonailment { 公共 静态 无效 的主要(字串[] args){ 新 ChineseTeacher(); }}可以 在这里打个断点,然后用debug模式进去看一下执行过程,你应该是想将11个用户信息显示出来吧,左侧是用户名么,右侧的数字是要显示什么? 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]确实这些值都赋值成功了?希望对你有用,祝你成功! 另一花生小妹,我的按钮的左侧,是“用户的好友用户名”,右侧的数字是“现在用户的好友的"同时聊天好友数"”,我为了让我的用户,能够选择“有空闲的好友进行聊天”.另一花生小妹,经过您的指导,我初步得到了思路,现在,我缕一缕我的代码执行流程: 首先,通过我的测试类,“贴出的代码块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); } (请另一花生小妹,允许我将之后的内容,写到下一贴中) 的执行,这个方法的逻辑是: 首先将本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中的各路高人!! 大家好,我是本楼的楼主的一个马甲,我再补充一句最后希望帮助我的高手能够注意的点: 希望大侠能够尽可能从“我的写出一个UpdateMyUI()方法在ChineseTeacher类”中的思路,进行我需要的:“即时刷新JFrame窗口中我所重写的JButton类的子类”的参数列表传入的数据的显示效果的解决方案的角度,进行我遇到的问题的点拨指导.谢谢另一花生小妹,谢谢CSDN中的诛路神佛!! 这个题目怎么做啊,做不来了 关于jdbc数据库连接的问题(有代码供分析) this的问题 为什么有错误,请帮忙,谢谢! 关于Swing 控件覆盖问题 数据库驱动类找不到,大侠帮忙啊. applet在https协议下无法正常加载的问题 还是web打印的问题,特别是票据打印,要求比较高(还要免费的),据说可以用Applet+数字签名+JNI+XML的形式? 请问如何让resin在开机时自动启动 Karnak(神庙)请进,dll调dll问题的延续 java byte数组、文件IO问题 显示竟然还是没有 图形(矩形) 只有画布
/**
*
*/
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按钮,能够更改他的“显示字符串”的显示效果,达到.
希望得到高手的指导.
希望得到高手的指导.
公共 静态 无效 的主要(字串[] args){
新 ChineseTeacher();
}
}
可以 在这里打个断点,然后用debug模式进去看一下执行过程,你应该是想将11个用户信息显示出来吧,左侧是用户名么,右侧的数字是要显示什么?
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]确实这些值都赋值成功了?
希望对你有用,祝你成功!
另一花生小妹,经过您的指导,我初步得到了思路,现在,我缕一缕我的代码执行流程:
首先,通过我的测试类,“贴出的代码块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);
}
(请另一花生小妹,允许我将之后的内容,写到下一贴中)
首先将本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中的各路高人!!
希望大侠能够尽可能从“我的写出一个UpdateMyUI()方法在ChineseTeacher类”中的思路,进行我需要的:“即时刷新JFrame窗口中我所重写的JButton类的子类”的参数列表传入的数据的显示效果的解决方案的角度,进行我遇到的问题的点拨指导.
谢谢另一花生小妹,谢谢CSDN中的诛路神佛!!