一个小程序,想用线程实现在jpanel上搞出一行button,但是我的程序做出来后button不会动,程序改了三小时了,未果,请高指点江山:代码如下 
package awt.test; import javax.swing.*; 
import java.awt.*; 
import java.awt.event.WindowAdapter; 
import java.awt.event.WindowEvent; 
import java.lang.*; public class AddButtonDemo { /** 
* @param args 
*/ 
//主程序
public static void main(String[] args) { 
textFrame text =new textFrame(); 
text.show(); } }
//主窗口程序 
class textFrame extends JFrame{ 
textFrame(){ 
this.setTitle("测试用"); 
this.setSize(300, 400); 
addWindowListener(new WindowAdapter() 
        {  public void windowClosing(WindowEvent e) 
          {  System.exit(0); 
          } 
        }); 
JButton sb1 =new JButton("测试用button"); 
textPanel panel =new textPanel(sb1); 
//panel.setLayout(new FlowLayout()); 
Container c = getContentPane(); 
c.setLayout(new GridLayout(2,2)); demoThread t1 = new demoThread(panel); 
Thread t2 =new Thread(t1); 
t2.start(); c.add(panel); 
c.setVisible(true); 


//定义了一个新的panel,里边加载button
class textPanel extends JPanel{ 
JButton jb1 = null; 
textPanel(JButton jb){ 
jb1=jb; 
this.add(jb1); 
this.setLayout(new FlowLayout()); 

public void addButton(){ this.add(jb1); 
jb1.updateUI(); 

private JButton getbutton(){ 
return jb1; 
} } //线程的定义,线程运行时会住panel里加button
class demoThread implements Runnable{ 
int i; 
textPanel jb2=null; 
textPanel jb3=null; 
demoThread(textPanel jb){ 
jb2=jb; 

public void run(){ 
while (i <=300){ 
jb2.addButton(); try { 
Thread.currentThread().sleep(2000); 
} catch (InterruptedException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 

i++; 


解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【wineer200】截止到2008-06-26 19:52:14的历史汇总数据(不包括此帖):
    发帖数:6                  发帖分:120                
    结贴数:0                  结贴分:0                  
    未结数:6                  未结分:120                
    结贴率:0.00  %            结分率:0.00  %            
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    你要出现一排BOTTON
    但你的addBotton方法始终只有一个BOTTON对象在不停设置,改成下面这样
    public void addButton(){ this.add(new Botton("sdafadfs")); 
    jb1.updateUI(); 

      

  3.   

    什么叫不会动?是没增加吗?
    象楼上说的那样,你只有一个JButton对象存在,
    只是反复操作而已,要new 新的对象才行啊