这天,课程较多,只在晚上搜了一段代码,进行学习,收集的代码如下:
import java.awt.FlowLayout; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; public class Pragram { static int seconds = 150; private TimeThread tt = null; private boolean ttFlag = false; private void init() { final JLabel tip = new JLabel(); final JButton start = new JButton("开始"); final JButton end = new JButton("结束"); JFrame f = new JFrame(); f.setLayout(new FlowLayout(5)); f.add(tip); f.add(start); f.add(end); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); f.setSize(300, 150); f.setLocationRelativeTo(null); start.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { start.setEnabled(false); tip.setFont(new Font("宋体",Font.BOLD,27)); ttFlag = true; tt = new TimeThread(tip); tt.start(); } }); end.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { start.setEnabled(true); tip.setText(""); Pragram.seconds = 150; ttFlag = false; } }); } /** * @param args */ public static void main(String[] args) { new Pragram().init(); } class TimeThread extends Thread { private JLabel tip; TimeThread(JLabel tip) { this.tip = tip; } @Override public void run() { int seconds = Pragram.seconds; tip.setText(seconds+""); while (seconds-- > 0 && ttFlag) { tip.setText(seconds+""); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }; }
实现结果如下:
如图所示,实现了倒计时。