解决方案 »
- Java读取Excel文件
- JAVA 插入两个有外键关系的表
- 关于java socket长连接问题
- 给定一段字符串,其中有a-Z的52个字母组成,其中单词是靠回车或制表符或空格分割,请统计这段文件中有多少个单词
- 请问java支持的图片个是由那些种类?(来者必有分)
- 怎样去掉乱码?
- jdk1.4.1再window me 中的配置问题(急,急,急)
- Swing 方面的问题:
- 各位高手,在程序里有什么手段可以让运行时观察到某时刻的情况?
- 娇娃和猫猫!!这厢急急!!
- spring-web.jar与spriing-webmvc.jar有何区别
- String index out of range: -1怎么处理啊
import java.awt.event.*;
import javax.swing.*;import java.time.*;public class CountDownTimerExample {
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable(){
@Override public void run(){
final JFrame frame = new JFrame("CountDownTimerExample"); final JLabel message = new JLabel("");
frame.add(message);
final JButton start = new JButton("Start"); final Timer timer = new Timer(100, new ActionListener(){
Duration d = Duration.ofSeconds(5);
@Override public void actionPerformed(ActionEvent e){
if(d.isNegative()) return;
message.setText(d.toString().substring(2));
d = d.minusMillis(100);
}
});
start.addActionListener(new ActionListener(){
@Override public void actionPerformed(ActionEvent e){
timer.start();
}
});
frame.add(start, BorderLayout.PAGE_END);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(300,200));
frame.pack();
frame.setVisible(true); }
});
}
}
Java8编译运行
写的不好,仅供参考import java.awt.BorderLayout;
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.JPanel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;public class CountDownDemo extends JFrame {
private final String COUNT = "10.0";
private final String START = "start";
private final String PAUSE = "pause";
private final String RESUME = "resume";
private JLabel jlblCountDown;
private JButton jbtnStart;
private JButton jbtnPause;
private ActionListener listener = new ActionListener() {
boolean available = true; // 倒计时是否工作
boolean isRunning = false; // 线程是否在运行
Thread t = null;
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(t == null){
t = new Thread(new Runnable() {
@Override
public void run() {
float i = Float.parseFloat(COUNT);
while(i > 0){
if(available){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
i -= 0.1f;
jlblCountDown.setText(String.format("%.1f", i<0?0:i));
}
}
isRunning = false;
t = null;
}
});
}
if(source == jbtnStart){
if(!isRunning){
isRunning = true;
t.start();
}
}
else if(source == jbtnPause){
if(PAUSE.equals(jbtnPause.getText())){
jbtnPause.setText(RESUME);
available = false;
}
else{
available = true;
jbtnPause.setText(PAUSE);
}
}
}
};
private void initUI(){
jlblCountDown = new JLabel(COUNT, SwingConstants.CENTER);
jbtnStart = new JButton(START);
jbtnPause = new JButton(PAUSE);
JPanel panel = new JPanel();
panel.add(jbtnStart);
panel.add(jbtnPause);
add(jlblCountDown, BorderLayout.CENTER);
add(panel, BorderLayout.SOUTH);
jbtnStart.addActionListener(listener);
jbtnPause.addActionListener(listener);
}
public CountDownDemo(){
initUI();
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
CountDownDemo demo = new CountDownDemo();
demo.setVisible(true);
}
});
}
}