求教一个窗口最大化有点灵异的问题

a156435646 2012-10-14 09:21:27
下面是我用多线程编写计时器的代码,实现的功能是,每次我点击Add按钮,变量名为f的JFrame就会添加一个JTextField,里面的数目从50开始倒计。
问题是,我点Add时候,JTextField不会立刻添加到f中,要自己把f窗体最大化才能看到那个JTexField,重点是,我明明把f的窗口设置成足够大的,足够容纳几十个的JTexField,却也显示不了。。
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JTextField;



public class Duoxiancheng {
JFrame f=new JFrame();
Button Add=new Button("Add");
Button close=new Button("close");

public void init()
{ Add.addActionListener(new xListener());
f.setLayout(new FlowLayout());
f.add(Add);
f.add(close);
f.setSize(500,500);
f.setVisible(true);
}
class xListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
new MyThread().start();
}
}
class MyThread extends Thread
{
String sum="50";
JTextField x=new JTextField();
{f.add(x);
}
public MyThread()
{
}
public void run()
{ int ix;
ix=Integer.parseInt(sum);

while(true){
x.setText(sum);
try{//close.enable(false);
ix=Integer.parseInt(sum);
ix=ix-1;
sum=String.valueOf(ix);
Thread.sleep(1000); //this.sleep(1000);

}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
public static void main(String args[])
{
new Duoxiancheng().init();
}
}
...全文
77 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujun3512159 2012-10-14
  • 打赏
  • 举报
回复
呵呵,是的哦
桃园闲人 2012-10-14
  • 打赏
  • 举报
回复
repaint()一下。
huntor 2012-10-14
  • 打赏
  • 举报
回复
添加完后,要刷新一下界面

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧