请帮我看看下面代码 当初次运行时text中的数可变 而点确定后text中的数却不变
不会是作用域的问题吧? 如果是那应怎样改才能在点确定后text 中的数也是变化的呢? 谢谢!
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Text extends JFrame implements ActionListener
{ JButton tb=new JButton("开始");
int a=0;
JTextField text=new JTextField("",10);
JTextField text1=new JTextField("5",10);
Text()
{
super("text测试");
setSize(100,150);
setLocation(200,300);
getContentPane().setLayout(new FlowLayout());
getContentPane().add(text);
getContentPane().add(tb);
getContentPane().add(text1);
tb.addActionListener(this);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
begin();
}
public void begin()
{
int i=0;
a=Integer.parseInt(text1.getText().trim());
while(a>0)
{
a--;i=50;
while(i>0)
{
i--;
System.out.print(" "+i);
text.setText(""+i);
try{
Thread.sleep(50);
}catch(Exception e)
{ }
}
}
}
public void actionPerformed(ActionEvent ee)
{
if(ee.getSource()==tb)
{begin();}
}
public static void main(String srgs[])
{ new Text();
}
}
不会是作用域的问题吧? 如果是那应怎样改才能在点确定后text 中的数也是变化的呢? 谢谢!
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Text extends JFrame implements ActionListener
{ JButton tb=new JButton("开始");
int a=0;
JTextField text=new JTextField("",10);
JTextField text1=new JTextField("5",10);
Text()
{
super("text测试");
setSize(100,150);
setLocation(200,300);
getContentPane().setLayout(new FlowLayout());
getContentPane().add(text);
getContentPane().add(tb);
getContentPane().add(text1);
tb.addActionListener(this);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
begin();
}
public void begin()
{
int i=0;
a=Integer.parseInt(text1.getText().trim());
while(a>0)
{
a--;i=50;
while(i>0)
{
i--;
System.out.print(" "+i);
text.setText(""+i);
try{
Thread.sleep(50);
}catch(Exception e)
{ }
}
}
}
public void actionPerformed(ActionEvent ee)
{
if(ee.getSource()==tb)
{begin();}
}
public static void main(String srgs[])
{ new Text();
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class Text extends JFrame implements ActionListener,Runnable { //加了一个线程接口.
JButton tb = new JButton("开始");
int a = 0;
JTextField text = new JTextField("", 10);
JTextField text1 = new JTextField("5", 10);
//Thread th=new Thread(this);
Text() {
super("text测试");
setSize(100, 150);
setLocation(200, 300);
getContentPane().setLayout(new FlowLayout());
getContentPane().add(text);
getContentPane().add(tb);
getContentPane().add(text1);
tb.addActionListener(this);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
text.setEnabled(false);
run(); //------------------>相当于执行一次你的begin方法.
} public void run() { //------->begin改为run,是为了重载.
int i = 0;
a = Integer.parseInt(text1.getText().trim());
while (a > 0) {
a--;
i = 50;
while (i > 0) {
i--;
System.out.print(" " + i);
text.setText(""+i);
try {
Thread.sleep(50);
}
catch (Exception e) {}
}
}
} public void actionPerformed(ActionEvent ee) { new Thread(this).start();//--->主要就是这儿了,新建一个线程,这样才不会影响主线程
} public static void main(String srgs[]) {
new Text();
}
}