Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Java] Data e ora corrente

    Salve,

    dovre inserire nell'applicazione data e ora in tempo reale.

    per l'ora vorrei utilizzare la seguente applet :
    codice:
    import java.applet.*;
    import java.awt.*;
    import java.text.SimpleDateFormat;
    import java.util.*;
    
    // introduciamo la classe
    public class OrologioDigitale extends Applet implements Runnable
    {
      Thread t,t1;
      Graphics g;
      
      // il metodo start() inizializza il thread e richiama la JVM  
      public void start()
      {
        t = new Thread(this);
        t.start();
      }
    
      // il metodo run() imposta gli intervalli di esecuzione dell'applet
      public void run()
      {
        t1 = Thread.currentThread();
        while(t1 == t)
        {
          repaint();
          try
          {
            // il metodo sleep() viene utilizzato per settare intervalli
            // da un minuto prima che repaint() ricostruisca l'orologio
            // aggiornando la data
            t1.sleep(1000); 
          }
          catch(InterruptedException e){}
        }
      }
    
      // il metodo paint() disegna l'orologio 
      public void paint(Graphics g)
      {
        
    
        // Vengono valorizzate le variabili
        GregorianCalendar gc = new GregorianCalendar();
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy - HH:mm:ss");
     
        
      
        // output grafico dell'applicazione 
        g.drawString(sdf.format(gc.getTime()), 20, 50);    
      }
      public Graphics getG() {
          return g;
      }
    }
    l
    funziona alla perfezione ma non so come richiamarla da un altro file java e inserirla nel relativo frame

    pensavo d'utilizzare il metodo getG() in modo da utilizzare la componente grafica ma non so quale componente accetti graphics nel costruttore, idee in merito?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] Data e ora corrente

    Originariamente inviato da JunkyFunki
    funziona alla perfezione ma non so come richiamarla da un altro file java e inserirla nel relativo frame
    A dire il vero una Applet è-un Component, quindi in effetti potrebbe essere messa dentro un altro contenitore es. JFrame come un qualunque altro componente. Solo che poi che sei tu che dovresti far fare il "ciclo di vita" corretto alla applet. Nella applet postata, c'è solo start(), quindi è facile.

    Ad ogni modo non ha molto senso cercare di mettere una applet dentro una applicazione. E se nella applet postata tecnicamente può essere semplice/utile farlo, con altre applet, in generale, potrebbe non esserlo affatto.

    Ti suggerisco di non stare tanto a cercare di integrare una applet in una applicazione ma piuttosto di capire i concetti necessari per gestire una temporizzazione e la visualizzazione di una data/ora.

    Ecco un esempio di "orologio" che ho scritto usando solo Swing e sfruttando il Timer di Swing. Come puoi vedere non ho usato né i Thread né il painting diretto su un Graphics.

    codice:
    import java.awt.*;
    import java.awt.event.*;
    import java.text.*;
    import java.util.Calendar;
    import javax.swing.*;
    
    public class ClockFrame extends JFrame
    {
        private JLabel clockLabel;
        private DateFormat dateFormat;
        private Timer timer;
        private int second = -1;
    
        public ClockFrame ()
        {
            super ("Clock");
            setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
            setSize (200, 100);
    
            dateFormat = DateFormat.getTimeInstance ();
    
            clockLabel = new JLabel ();
            clockLabel.setFont (new Font ("SansSerif", Font.BOLD, 30));
            clockLabel.setHorizontalAlignment (JLabel.CENTER);
    
            add (clockLabel, BorderLayout.CENTER);
    
            timer = new Timer (250, new ActionListener ()
            {
                public void actionPerformed (ActionEvent e)
                {
                    Calendar c = Calendar.getInstance ();
    
                    if (c.get (Calendar.SECOND) != second)
                    {
                        String str = dateFormat.format (c.getTime ());
    
                        clockLabel.setText (str);
    
                        second = c.get (Calendar.SECOND);
                    }
                }
            });
    
            timer.start ();
        }
    
        public static void main (String[] args)
        {
            SwingUtilities.invokeLater (new Runnable ()
            {
                public void run ()
                {
                    ClockFrame frame = new ClockFrame ();
                    frame.setVisible (true);
                }
            });
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.