朋友如果你是为了看到JTextField的话,就把你上面代码中的 方法:
private JTextField getJTextField()  {
if (jTextField == null) {
jTextField = new JTextField(20);
jTextField.setText("" + count);
jTextField.setEnabled(false) ;
}
return jTextField;
}
改成
private JTextField getJTextField()  {
if (jTextField == null) {
jTextField = new JTextField(20);
                            jTextField.setBounds(20, 100, 100, 25);
jTextField.setText("" + count);
jTextField.setEnabled(false) ;
}
return jTextField;
}就可以了

解决方案 »

  1.   

    3:  jContentPane.add(getJTextField(), null); 中的null是何含义?null的含义就是不设置布局管理器
      

  2.   

    如果不设置布局特定布局管理器,就可以用setBounds来任意设置控件的位置
      

  3.   

    我还要JTextField中的数字只受程序控制, 每秒加1, 为什么数字没动. public void run() {
    // TODO Auto-generated method stub
    while(!stop){
    while(!pause){
                try{
                       Thread.sleep(1000);
                       
                       jTextField.setEnabled(true) ;
                       jTextField.setText("" + (count++));
     jTextField.setEnabled(false) ;
                   }
                catch(InterruptedException exp){
                
                 };
    }
    } // end while stop
    }//run
      

  4.   

    你的程序运行的时候好象根本没有执行run()下面的代码
      

  5.   

    你要把这个类放到定义在Thread里面,然后用start()方法启动它,这样才会运行run()方法,还有你的run()方法,写的也有问题
      

  6.   

    1:  为何要等于null, 不赋值的话在运行时也看不出什么区别吗?  private JButton jButton = null;
    定义属性时最好初始化一下,增加程序可读性。2:  if (jButton2 == null)  这里的null代表无参对吗?  为什么要判断呢?  是否出于强壮性的考虑.
    代表jButton2 指向null3:  jContentPane.add(getJTextField(), null); 中的null是何含义?
    public void add(Component comp,Object constraints)
    constraints - an object expressing layout contraints for this component
    null是一个空的布局管理器。
    4:  我想添加一个 jTextField 来显示count的值, 在窗口上不可见呢?
    你的线程没有启动
      

  7.   

    你把 main函数该成:
    public static void main(String[] args) {
        GuiThreadTest app = new GuiThreadTest() ;
        app.setVisible(true) ;
        Thread first = new Thread(new GuiThreadTest());
        first.start();
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
    }
    试一下,同时在你的
    run()方法的循环里面加一句 System.out.println(count);
    看看,到底有没有在累加。
      

  8.   

    大致方向是这样吗?  还有一个错, 错哪里了.import javax.swing.*;/*
     * Created on 2004-12-13
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     *//**
     * @author kyle
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    public class GuiThreadTest extends JFrame { private javax.swing.JPanel jContentPane = null;
    private long count = 0;
    private boolean stop =false ;
    private boolean pause = false ;
    private JButton jButton = null;
    private JButton jButton1 = null;
    private JButton jButton2 = null;
    private JTextField jTextField = null; 
    /* (non-Javadoc)
     * @see java.lang.Runnable#run()
     */ /**
     * This method initializes jButton
     * 
     * @return javax.swing.JButton
     */    
    private JButton getJButton() {  // Play
    if (jButton == null) {
    jButton = new JButton();
    jButton.setBounds(24, 53, 61, 22);  // 澄恢?
    jButton.setText("Play");
    jButton.setName("playButton");
    jButton.addActionListener(new java.awt.event.ActionListener() { 
    public void actionPerformed(java.awt.event.ActionEvent e) {    
    jButton1.setEnabled(true) ;
    jButton.setEnabled(false) ;
    jButton2.setEnabled(true) ;
            stop =  false;
            pause = false;
    //     System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
    }
    }); }
    return jButton;
    }
    /**
     * This method initializes jButton1
     * 
     * @return javax.swing.JButton
     */    
    private JButton getJButton1() {
    if (jButton1 == null) {
    jButton1 = new JButton();
    jButton1.setBounds(111, 53, 73, 21);
    jButton1.setText("pause");
    jButton1.addActionListener(new java.awt.event.ActionListener() { 
    public void actionPerformed(java.awt.event.ActionEvent e) {    
    jButton.setEnabled(true) ;
    jButton1.setEnabled(false);
    jButton2.setEnabled(true);
         pause = true;
    // System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
    }
    });
    }
    return jButton1;  // pause
    }
    /**
     * This method initializes jButton2
     * 
     * @return javax.swing.JButton
     */    
    private JButton getJButton2() {
    if (jButton2 == null) {
    jButton2 = new JButton();
    jButton2.setBounds(194, 52, 61, 25);
    jButton2.setText("Stop");
    jButton2.addActionListener(new java.awt.event.ActionListener() { 
    public void actionPerformed(java.awt.event.ActionEvent e) {    
    jButton.setEnabled(true);
    jButton1.setEnabled(false) ;
    jButton2.setEnabled(false) ;
    stop =true ;
    // System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
    }
    });
    }
    return jButton2;  // Stop
    }
    private JTextField getJTextField()  {
    if (jTextField == null) {
    jTextField = new JTextField(20);
    jTextField.setBounds(20, 100, 100, 25);
    jTextField.setText("" + count);
    jTextField.setEnabled(false) ;
    }
    return jTextField;
    }

        public static void main(String[] args) {
        GuiThreadTest app = new GuiThreadTest() ;
        app.setVisible(true) ;
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
    }
    /**
     * This is the default constructor
     */
    public GuiThreadTest() {
    super();  // JFrame
    initialize();
    TestThread t= new TestThread();
    t.start();
    }
    /**
     * This method initializes this
     * 
     * @return void
     */
    private void initialize() {
    this.setSize(300,250);
    this.setContentPane(getJContentPane());
    this.setTitle("JFrame");
    }
    /**
     * This method initializes jContentPane
     * 
     * @return javax.swing.JPanel
     */
    private javax.swing.JPanel getJContentPane() {
    if(jContentPane == null) {
    jContentPane = new javax.swing.JPanel();
    jContentPane.setLayout(null);
    jContentPane.add(getJButton(), null);
    jContentPane.add(getJButton1(), null);
    jContentPane.add(getJButton2(), null);
    jContentPane.add(getJTextField(), null);
    }
    return jContentPane;
    }

    class TestThread implements Runnable //extends Thread
    {
    public void run() {
    // TODO Auto-generated method stub
    while(!stop){
    while(!pause){
                try{
                       Thread.sleep(1000);
                       jTextField.setEnabled(true) ;
                       jTextField.setText( "" + (count++) );
       jTextField.setEnabled(false) ;
                   }
                catch(InterruptedException exp){
                
                 };
    }
    } // end while stop

    }
    }}