javax.swing.Timer类,可以定时触发事件,调用监听器的指定方法
例如:
JFrame jFrame = new JFrame();
JPanel panel = new JPanel();
JPanel north = new JPanel();
JButton startBtn = new JButton("开始");
JButton endBtn = new JButton("停止");
final Canvas canvas = new Canvas();
final Timer timer = new Timer(500,new ActionListener() {
private int count;
@Override
public void actionPerformed(ActionEvent e) {
if(count*10>=canvas.getWidth()){
return ;
}
Graphics g = canvas.getGraphics();
g.drawLine(count*10, 0, count*10, canvas.getWidth());
count++;
}
});
startBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
timer.start();
}
});
endBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
timer.stop();
}
});
north.add(startBtn);
north.add(endBtn);
panel.setLayout(new BorderLayout());
panel.add(canvas);
jFrame.add(north,BorderLayout.NORTH);
jFrame.add(panel);
jFrame.setSize(400, 400);
jFrame.setLocation(700, 300);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setVisible(true);