codice:import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Cronometro { private JFrame frame; private JLabel labelTime; private JPanel panelButtons; private JButton buttonStart; private JButton buttonStop; private Timer timer; private long startTime; public Cronometro () { frame = new JFrame ("Cronometro"); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.setSize (220, 140); labelTime = new JLabel ("0:00:00.0"); labelTime.setFont (new Font ("SansSerif", Font.BOLD, 30)); labelTime.setHorizontalAlignment (JLabel.CENTER); buttonStart = new JButton ("START"); buttonStop = new JButton ("STOP"); buttonStop.setEnabled (false); panelButtons = new JPanel (new GridLayout (1, 2)); panelButtons.add (buttonStart); panelButtons.add (buttonStop); frame.add (labelTime, BorderLayout.CENTER); frame.add (panelButtons, BorderLayout.SOUTH); timer = new Timer (50, new ActionListener () { public void actionPerformed (ActionEvent e) { long diffTime = System.currentTimeMillis () - startTime; int decSeconds = (int) (diffTime % 1000 / 100); int seconds = (int) (diffTime / 1000 % 60); int minutes = (int) (diffTime / 60000 % 60); int hours = (int) (diffTime / 3600000); String s = String.format ("%d:%02d:%02d.%d", hours, minutes, seconds, decSeconds); labelTime.setText (s); } }); buttonStart.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent e) { startTime = System.currentTimeMillis (); timer.start (); buttonStart.setEnabled (false); buttonStop.setEnabled (true); } }); buttonStop.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent e) { timer.stop (); buttonStart.setEnabled (true); buttonStop.setEnabled (false); } }); frame.setVisible (true); } public static void main (String[] args) { SwingUtilities.invokeLater (new Runnable () { public void run () { new Cronometro (); } }); } }

Rispondi quotando