解决方案 »

  1.   


    package com.util;import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;
    import javax.swing.JDialog;
    import javax.swing.JOptionPane;
    import javax.swing.JTextField;public class WhileLoop extends JDialog{
    WhileLoop(){
    final int start = 0 ;
    this.setSize(400, 300);
    final JTextField text = new JTextField();
    JButton button = new JButton("提交");
    this.add(text, BorderLayout.NORTH);
    this.add(button, BorderLayout.SOUTH);
    this.setLocationRelativeTo(null);
    this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    this.setVisible(true);
    button.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
    if (null != text.getText()) {
    // TODO Auto-generated method stub
    for (int i = 0; i <= start + 1; i++) {
    System.out.println(text.getText());
    i=0;
    }
    }else{
    JOptionPane.showMessageDialog(null, "text不能为空!");
    return;
    }
    }
    });
    }
    public static void main(String[] args) {
    new WhileLoop();
    }
    }
      

  2.   

    3楼的朋友可能没明白我的意思。
    我不是让它在控制台无限输出。我是让它在JTextArea里无限输出。
      

  3.   

    button点击事件的响应应该用线程(Thread)处理
    public void actionPerformed(ActionEvent e) {
    new Runnable( new Thread(){
           public void run() {
               textfca.setText( textfca.getText()+"ABC");
           }
       }).start();
    }
      

  4.   

    这个是因为UI的绘制都是单线程的,无论什么开发语言都一样,一般会新起线程去处理耗时的操作,然后通过事件通知进行回调绘制UI。