public void increaseAnimationSpeed(int increment) { int delay = (int) timer.getInterval(); if (delay - increment > 0) { timer.setInterval(delay - increment); } }
public PieChartAnimator(RegularTimeSeries[] rts) { int delay = 500; timer = new Animator(); timer.setInterval(delay); timer.addAnimateDisplay(this); _canvas = setUpPieChart(rts); _filter = new NaNFilter(); // set up buttons JButton fasterBtn = new JButton("faster"); JButton slowerBtn = new JButton("slower"); JButton stopBtn = new JButton("#"); JButton forwardBtn = new JButton(">"); JButton reverseBtn = new JButton("<"); fasterBtn.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { increaseAnimationSpeed(50); } }); slowerBtn.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { increaseAnimationSpeed(-50); } }); forwardBtn.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { goForward = true; timer.startAnimation(); } }); stopBtn.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { timer.stopAnimation(); } }); reverseBtn.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent evt) { goForward = false; timer.startAnimation(); } }); // setup button panel JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new FlowLayout()); buttonPanel.add(forwardBtn); buttonPanel.add(stopBtn); buttonPanel.add(reverseBtn); buttonPanel.add(fasterBtn); buttonPanel.add(slowerBtn); // JFrame fr = new JFrame(); fr.getContentPane().setLayout(new BorderLayout()); fr.getContentPane().add(buttonPanel, BorderLayout.SOUTH); fr.getContentPane().add(_canvas, BorderLayout.CENTER); fr.pack(); fr.setVisible(true); timer.startAnimation(); }