Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
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


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Toyota usa giochi e premi per spingere i...
HarmonyOS ha raggiunto la soglia di sopr...
Le offerte Amazon più convenienti...
Un gruppo di ladri ha usato Google Maps ...
Apple non si fida di Samsung per la real...
Windows 11: un nuovo driver nativo mette...
Vi hanno regalato buoni Amazon? Intanto ...
Via acari, polvere e sporco da materassi...
Cuffie Beats in super offerta su Amazon,...
Xbox Cloud Gaming arriva su Amazon Fire ...
Un blackout a San Francisco manda in til...
Windows 11 è diventato più...
Apple cambia strategia a causa della cri...
007 First Light: uscita rimandata di due...
Samsung Galaxy A37 e A57: il comparto fo...
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: 15:08.


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