java swt 怎样实现label不断刷新 不影响其他组件
在面板上添加一个Label组件,要求该label初始值为0,然后不断加一.该界面还要有一个按钮,单机该按钮时,基数停止,请问要怎么样用线程实现?谢谢....
在面板上添加一个Label组件,要求该label初始值为0,然后不断加一.该界面还要有一个按钮,单机该按钮时,基数停止,请问要怎么样用线程实现?谢谢.
展开
3个回答
展开全部
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;
public class TimerDemo extends JFrame {
public static void main(String[] args) {
new TimerDemo();
}
public TimerDemo() {
this.setSize(600, 450);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
final JLabel label = new JLabel("0");
final Timer timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
int i = Integer.parseInt(label.getText());
label.setText(String.valueOf(i + 1));
}
});
timer.start();
final JButton button = new JButton("Stop");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand() == "Stop") {
timer.stop();
button.setText("Restart");
} else {
timer.restart();
button.setText("Stop");
}
}
});
add(label);
add(button);
this.setVisible(true);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,java里面有javax.swing.Timer类,是定时器,里面有方法每隔一段时间执行一次,也有相应的方法停止定时器,你可以看看,查下API了解相应的方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
开一个线程呗,这个线程每次都给控件的值加一
加了一之后就睡个一秒钟
单击按钮就让线程stop就好了。
你是思路没有还是技术有难点呢?
加了一之后就睡个一秒钟
单击按钮就让线程stop就好了。
你是思路没有还是技术有难点呢?
追问
其实是有一个程序,执行超快,不可能睡一秒因为一秒中刷新好多条.头都快想破了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询