Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-07-2003, 21:01   #1
Lancill
Member
 
L'Avatar di Lancill
 
Iscritto dal: Aug 2001
Città: Avalon
Messaggi: 175
[JAVA] Lanciare e Gestire eventi personalizzati

Ciao a tutti, sto studiando la gestione degli eventi in java 2, ma non mi è chiaro come fare per generare un evento personalizzato.
Faccio un esempio: ho un Timer che fa il countdown; quando arriva a 0 o ad un valore prestabilito vorrei lanciare un evento... come si fa?

Grazie mille in anticipo!
__________________
Lancill
Ho felicemente trattato con: MAURIZIO81 e Nd1966
Blog: D&R s Java
Lancill è offline   Rispondi citando il messaggio o parte di esso
Old 22-07-2003, 00:14   #2
monkey72
Senior Member
 
L'Avatar di monkey72
 
Iscritto dal: Dec 2001
Messaggi: 1385
approfitto per chiedere... ma l'utilizzo di eventi nella programmazione guidata da eventi non implica che ci sia l'attesa da parte del programma di un evento provocato dall'utente? quale ad esempio la pressione di un pulsante, chiusura di una finestra....
nel tuo caso non c'è l'attesa di un'azione dell'utente...
__________________
lui è il mio amore: "tesò domani ti regalo un guinzaglio lungo 100 km"
monkey72 è offline   Rispondi citando il messaggio o parte di esso
Old 22-07-2003, 00:28   #3
Lancill
Member
 
L'Avatar di Lancill
 
Iscritto dal: Aug 2001
Città: Avalon
Messaggi: 175
no, anche se la maggior parte degli eventi viene generata da interfaccia utente, un evento può essere generato da qualunque oggetto... di questo ne sono certo.
Il problema è come fare a generarlo se non è un evento standard di java

...speriamo che qualcuno mi illumini!
__________________
Lancill
Ho felicemente trattato con: MAURIZIO81 e Nd1966
Blog: D&R s Java
Lancill è offline   Rispondi citando il messaggio o parte di esso
Old 22-07-2003, 09:53   #4
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Puoi generare tu un evento usando la classe ActionEvent e passandolo all'actionPerformed...

tuoOggetto.actionPerformed(new ActionEvent(...) );
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 22-07-2003, 15:15   #5
Lancill
Member
 
L'Avatar di Lancill
 
Iscritto dal: Aug 2001
Città: Avalon
Messaggi: 175
forse sto iniziando a capire, ma non è che mi potresti fare un esempio pratico un po' più dettagliato? Te ne sarei ultra-grato!
__________________
Lancill
Ho felicemente trattato con: MAURIZIO81 e Nd1966
Blog: D&R s Java
Lancill è offline   Rispondi citando il messaggio o parte di esso
Old 22-07-2003, 17:27   #6
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
posta tu un po' di codice e poi vediamo...
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 22-07-2003, 22:16   #7
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Se ti interessa ho un esercitazione che ho fatto nel corso di fondamenti di informatica all'universita. spiega proprio su come generare degli eventi personalizati. la posso mettere da qualche parte e darti un link.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 22-07-2003, 22:26   #8
roby1483
Senior Member
 
L'Avatar di roby1483
 
Iscritto dal: Apr 2000
Città: S.Croce s/Arno - Pisa - Toscana
Messaggi: 1015
Quote:
Originariamente inviato da VICIUS
Se ti interessa ho un esercitazione che ho fatto nel corso di fondamenti di informatica all'universita. spiega proprio su come generare degli eventi personalizati. la posso mettere da qualche parte e darti un link.

ciao
A me interesserebbe .
__________________
Il mio album su Flickr :: Video Laurea Honoris Causa ad Alan Kay, Universita' di Pisa :: Thinking Different, PowerBook G4 12" 1GHz, iMac Core 2 Duo 20"
roby1483 è offline   Rispondi citando il messaggio o parte di esso
Old 22-07-2003, 22:38   #9
Lancill
Member
 
L'Avatar di Lancill
 
Iscritto dal: Aug 2001
Città: Avalon
Messaggi: 175
certo che mi interessa, anche se mi sto sforzando di creare qualcosa da solo e forze ci sto riuscendo, ma un aiuto mi velocizzerebbe molto le cose!
se vuoi puoi mandarmelo anche in email!

Grazie mille...
cmq se riesco a creare qualcosa di buono posto tutto il codice qui così chi si trova nella mia condizione impara qualcosa di nuovo
__________________
Lancill
Ho felicemente trattato con: MAURIZIO81 e Nd1966
Blog: D&R s Java
Lancill è offline   Rispondi citando il messaggio o parte di esso
Old 22-07-2003, 22:51   #10
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
visto che interessa a piu persone posto un link:
http://utenti.lycos.it/ilgrandepuffo...itazione06.rar

spero che vi possa essere utile.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2003, 00:48   #11
Lancill
Member
 
L'Avatar di Lancill
 
Iscritto dal: Aug 2001
Città: Avalon
Messaggi: 175
Grazie VICIOUS, mi hai dato una buona mano a capire una parte su cui avevo ancora molti dubbi, il mio cammino verso il completo dominio degli eventi è iniziato

cmq ho trovato anche su internet un documento molto chiaro sugli eventi personalizzati:
http://mokabyte.infomedia.it/1999/05/swing_4.htm
__________________
Lancill
Ho felicemente trattato con: MAURIZIO81 e Nd1966
Blog: D&R s Java
Lancill è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2003, 16:02   #12
Lancill
Member
 
L'Avatar di Lancill
 
Iscritto dal: Aug 2001
Città: Avalon
Messaggi: 175
Vi posto il mio risultato finale, una semplice classe Timer che genera un evento TimerEvent quando lo decido io!
L'unica domanda: la classe Timer può andar bene come JavaBean?

la classe Main
Codice PHP:
public class MainTimer {
  public static 
void main(String[] args) {

    
Timer t = new Timer();
    
//creo una classe interna anonima TimerListener
    
t.addTimerListener(new TimerListener() {
      public 
void onTimer(TimerEvent te){
        
System.out.println("Timer = "te.getDelay());
      }
    });
    
t.start();
  }


la classe Timer
Codice PHP:
import java.io.Serializable;
import java.util.*;


public class 
Timer implements SerializableRunnable{

  private 
TimerGuardian timerGuardian;
  private 
int timeOutnoOfTimeouttime;
  private 
Thread th;


  public 
Timer(){
    
this(1000100);
  }

  public 
Timer(int toint noto){
    
timeOut to;
    
noOfTimeout noto;
    
th null;
    
timerGuardian = new TimerGuardian(this);
  }

  public 
int getTimeout(){
    return 
timeOut;
  }

  public 
void setTimeout(int t){
    
timeOut t;
  }

  public 
int getNoTimeout(){
    return 
noOfTimeout;
  }

  public 
void setNoTimeout(int t){
    
noOfTimeout t;
  }

  
//il run del thread che deve generare
  
public void run(){
    
int i;
    for(
0noOfTimeoutnoOfTimeout--){
    {
        try{
          
th.sleep(timeOut);
          
//quando arrivo a novanta stoppo e lancio un TimerEvent
          
if(noOfTimeout == 90stop();
          
System.out.println(noOfTimeout);

        } catch (
Exception e) {}

        }
    }
    
timerGuardian.fireTimerEvent(0);
  }

  
//comandi di start e stop
  
public void start(){
    if(
th == null){
      
th = new Thread(this);
      
th.start();
    }
  }

  public 
void stop(){
    if(
th != null){
      
timerGuardian.fireTimerEvent(noOfTimeout);
      
th.stop();
      
th null;
    }
  }

  public 
void addTimerListener(TimerListener tl){
    
timerGuardian.addTimerListener(tl);
  }

  public 
void removeTimerListener(TimerListener tl){
    
timerGuardian.removeTimerListener(tl);
  }


la classe TimerEvent
Codice PHP:
import java.util.*;

public class 
TimerEvent extends EventObject{

  private 
int delay;

  public 
TimerEvent(Object sorgente){
      
this(sorgente0);
  }

  public 
TimerEvent(Object sorgenteint delay){
      
super(sorgente);
      
this.delay delay;
  }

  public 
int getDelay(){
    return 
delay;
  }


la classe TimerGuardian
Codice PHP:
import java.util.*;

public class 
TimerGuardian {

private 
Object sorgente;
private 
Vector listeners;

  public 
TimerGuardian(Object sorgente){
    
this.sorgente sorgente;
    
listeners = new Vector();
  }

  public 
void addTimerListener(TimerListener tl){
    
listeners.addElement(tl);
  }

  public 
void removeTimerListener(TimerListener tl){
    
listeners.removeElement(tl);
  }

  public 
void fireTimerEvent(int delay){
    
TimerEvent timev = new TimerEvent(sorgentedelay);


  
Vector copia_listeners = new Vector();
  
synchronized(listeners){
    
copia_listeners = (Vector) (listeners.clone());
  }
  for(
int i=0copia_listeners.size(); i++)
    ((
TimerListener) (copia_listeners.elementAt(i))).onTimer(timev);
  }


e infine l'interfaccia TimerListener
Codice PHP:
import java.util.EventListener;

public interface 
TimerListener extends EventListener{

  public 
void onTimer(TimerEvent timEv);


__________________
Lancill
Ho felicemente trattato con: MAURIZIO81 e Nd1966
Blog: D&R s Java

Ultima modifica di Lancill : 23-07-2003 alle 16:07.
Lancill è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2003, 16:13   #13
Lancill
Member
 
L'Avatar di Lancill
 
Iscritto dal: Aug 2001
Città: Avalon
Messaggi: 175
"Timer.java": stop() in java.lang.Thread has been deprecated at line 68, column 10

Il programma funziona solo non capisco perchè mi da questo warning?
Se è stato reso obsoleto stop() che bisogna usare al suo posto?
__________________
Lancill
Ho felicemente trattato con: MAURIZIO81 e Nd1966
Blog: D&R s Java
Lancill è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2003, 16:57   #14
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Ma usare la documentazione no, eh??

stop() non è più considerato sicuro... erano molte le disfunzioni ai programmi che venivano fuori...
Dai un occhio qui:
Why Are Thread.stop, Thread.suspend, Thread.resume and Runtime.runFinalizersOnExit Deprecated?
Spiega perchè sè stato deprecato e come ovviare (mettendo il thread a null).

Poi mi spieghi come hai scritto quel codice senza guardare la doc delle API...
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2003, 16:58   #15
monkey72
Senior Member
 
L'Avatar di monkey72
 
Iscritto dal: Dec 2001
Messaggi: 1385
Quote:
Originariamente inviato da Lancill
Se è stato reso obsoleto stop() che bisogna usare al suo posto?
http://java.sun.com/j2se/1.4.2/docs/...precation.html

l'articolo dice che l'uso non è sicuro ma che non si usa niente al suo posto ma da degli esempi su come aggiungere al codice variabili che indichino che il thread deve essere terminato.
__________________
lui è il mio amore: "tesò domani ti regalo un guinzaglio lungo 100 km"

Ultima modifica di monkey72 : 23-07-2003 alle 17:14.
monkey72 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2003, 17:00   #16
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Quote:
Originariamente inviato da monkey72
http://java.sun.com/j2se/1.4.2/docs/...ion.html<br />
l'articolo dice che l'uso non è sicuro ma che non si usa niente al suo posto ma da degli esempi su come aggiungere al codice variabili che indichino che il thread deve essere terminato.
Il tuo link non porta a nulla... Come sarebbe che non si usa niente????
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2003, 17:01   #17
monkey72
Senior Member
 
L'Avatar di monkey72
 
Iscritto dal: Dec 2001
Messaggi: 1385
Quote:
Originariamente inviato da cn73
Ma usare la documentazione no, eh??

stop() non è più considerato sicuro... erano molte le disfunzioni ai programmi che venivano fuori...
dai un occhio qui:
Why Are Thread.stop, Thread.suspend, Thread.resume and Runtime.runFinalizersOnExit Deprecated?

Poi mi spieghi come hai scritto quel codice senza guardare la doc delle API...
cn73 nello stesso istante praticamente!!!!
lo vorrei sapere anch'io come lo ha scritto il codice
__________________
lui è il mio amore: "tesò domani ti regalo un guinzaglio lungo 100 km"
monkey72 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2003, 17:08   #18
monkey72
Senior Member
 
L'Avatar di monkey72
 
Iscritto dal: Dec 2001
Messaggi: 1385
Quote:
Originariamente inviato da cn73
Il tuo link non porta a nulla... Come sarebbe che non si usa niente????
come non porta a nulla, porta dove porta il tuo, l'ho postato male?
__________________
lui è il mio amore: "tesò domani ti regalo un guinzaglio lungo 100 km"
monkey72 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2003, 17:10   #19
monkey72
Senior Member
 
L'Avatar di monkey72
 
Iscritto dal: Dec 2001
Messaggi: 1385
si, l'ho postato male cmq era lo stesso articolo che hai postato tu
__________________
lui è il mio amore: "tesò domani ti regalo un guinzaglio lungo 100 km"
monkey72 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2003, 17:15   #20
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Ottimo!
cn73 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Artemis II: nuovo test prima del Wet Dre...
GTA 6 gratis se nasce un figlio il giorn...
Quasi la metà degli smartphone at...
DDR5 a 16 dollari al gigabyte: Framework...
Meno di 3kg per 'diventare' bionici: l'u...
Al regalo di San Valentino ci pensa HUAW...
Intel multata in India: 30 milioni di do...
Beast of Reincarnation ha una data di us...
Provati Reno15 e Reno15 FS: analisi comp...
L'Europa sfida la Cina sul litio: in Fin...
Sono 32, di cui 6 nuove, le offerte Amaz...
Rinnovo dei coupon Amazon nascosti: ecco...
Corsair aggiorna la confezione delle RAM...
Ecco tutti i robot aspirapolvere in offe...
Tachyum: dal processore universale alle ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:43.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v