Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
Ad Appian Europe 2025, l'azienda parla molto della sua visione di cos'è e come dovrebbe essere usata l'intelligenza artificiale: è uno strumento che va sempre adoperato dalle persone, che devono rimanere responsabili dei processi all'interno dell'azienda. Non è un giocattolo con cui sperimentare, ma un aiuto per superare le sfide di business più importanti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-12-2011, 18:39   #1
Player1
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 1370
[java applet] Problema nella comunicazione tra applet su una stessa pagina.

Ciao a tutti,
sto cercando di far comunicare due applet che si trovano sulla stessa pagina.
Ho seguito un esempio, adattandolo al mio caso specifico ma qualcosa non funziona, ecco qui la parte del codice che da problemi:

Codice:
logger.debug("Mouse pressed");
	AppletContext ac = getAppletContext();
	RMIApplet dataApplet = (RMIApplet) ac.getApplet("getDataApplet");
	if (dataApplet==null){
		logger.debug("applet NOT found :( ");
	}
	else{
		logger.debug("applet FOUND :) ");
	}
Questo semplice codice mi da la seguente eccezione alla terza riga
Quote:
Exception in thread "AWT-EventQueue-3" java.lang.ClassCastException: rankVisRMIApplet.RMIApplet cannot be cast to rankVisRMIApplet.RMIApplet
at rankVisRMIApplet.rankVisApplet.loadNewData(rankVisApplet.java:99)
La cosa mi sembra molto strana perchè come lo stesso messaggio di eccezione dice RMIApplet non può essere "castata" ad RMIApplet ma si tratta di un oggetto dello stesso tipo!

Se invece provo a recuperare un oggetto di tipo Applet generico modificando la riga 3 in questo modo
Codice:
logger.debug("Mouse pressed");
		AppletContext ac = getAppletContext();
		Applet dataApplet = ac.getApplet("getDataApplet");
		if (dataApplet==null){
			logger.debug("applet NOT found :( ");
		}
		else{
			logger.debug("applet FOUND :) ");
		}
Ho come risultato la scrittura della stringa "applet FOUND " segno che l'applet viene recuperata correttamente, solo che in questo caso non posso farci nulla perchè si tratta di un'applet generica che non ha i metodi di RMIApplet.

Dov'è che sbaglio?

Ultima modifica di Player1 : 24-12-2011 alle 18:46.
Player1 è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2011, 12:07   #2
Player1
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 1370
Faccio un piccolo up visto che è passato qualche giorno e non sono ancora riuscito a risolvere il problema, nessuno ha mai fatto comunicare applet che si trovano sulla stessa pagina?
Please HEEELP!!
Player1 è offline   Rispondi citando il messaggio o parte di esso
Old 01-01-2012, 18:36   #3
Player1
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 1370
Non riesco proprio a risolvere.
Inserisco maggiori dettagli e provo a ragionarci un po' qui nella speranza che qualcuno riesca a darmi una mano.
Infondo si tratta del meccanismo di cast di Java non ho preso chissà quale strana e marginale funzione, sto seguendo rigorosamente (credo) la logica Java e non si tratta di 10000 righe di codice sono solo 2 o 3.
Perché non funziona?

Allora, ricapitoliamo, ho un oggetto di tipo AppletContext che ottengo così:

Codice:
AppletContext ac = getAppletContext();
L'oggetto ac ha tra i suoi metodi quello che mi interessa che ha la seguente segnatura:

Codice:
 Applet getApplet(String name)
Bene,
quindi se io scrivo questo:

Codice:
AppletContext ac = getAppletContext();
Applet myApplet = ac.getApplet("appletName");
Ottengo l'oggetto di tipo Applet chiamato myApplet.
Ok, ora provo a forzare il cast, dovrebbe funzionare ugualmente, giusto?!?
A me non da errori:

Codice:
AppletContext ac = getAppletContext();
Applet myApplet = (Applet) ac.getApplet("appletName");
Fantastico quindi ho un oggetto chiamato myApplet che è inequivocabilmente di tipo Applet.

Ora, io ho creato un nuovo tipo di oggetto RMIApplet che estende Applet.

Codice:
public class RMIApplet extends Applet {
Vorrei convertire myApplet(che è di tipo Applet) in myRmiApplet (di tipo RMIApplet) utilizzando un cast.
Visto che RMIApplet estende Applet, non dovrebbe essere SEMPRE possibile convertire un oggetto di un determinato tipo in uno di un tipo che lo estende?!

Riporto qui di seguito il codice completo:
Codice:
AppletContext ac = getAppletContext();
Applet myApplet = (Applet) ac.getApplet("getDataApplet");
RMIApplet myRmiApplet = (RMIApplet) myApplet;
Ora, alla terza riga mi da la seguente eccezione:
Codice:
Exception in thread "AWT-EventQueue-3" java.lang.ClassCastException: rankVisRMIApplet.RMIApplet cannot be cast to rankVisRMIApplet.RMIApplet
Prima di tutto, come si può vedere dalla seconda riga di codice myApplet è assolutamente, inconfutabilmente, indissolubilmente di tipo Applet, giusto?!? Benissimo, anche se per un qualsiasi assurdo problema di Java la terza riga dovesse darmi un ClassCastException, per quale motivo mi dice che rankVisRMIApplet.RMIApplet[/color] cannot be cast to ... ?
Dovrebbe in ogni caso essere
java.lang.Applet[/color] cannot be cast to...
Visto che l'oggetto che sto cercando di "castare", myApplet, è comunque di tipo Applet.

Poi assumendo per assurdo che tra la linea 2 e la linea 3 del mio codice myApplet si sia autonomamente evoluto in un oggetto di tipo rankVisRMIApplet.RMIApplet (quello che lancia il class cast exception), come è possibile che venga lanciata l'eccezione stessa? Si tratterebbe in quel caso di oggetti dello stesso tipo. Come se io avessi problemi a castare un oggetto di tipo String in un oggetto di tipo String o uno di tipo Integer in uno di tipo Integer, non è assurdo?!?

Quindi, l'oggetto myApplet chiamato alla seconda riga, secondo voi di che tipo è?!?
Player1 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Pazzesco Black Friday Amazon: TV Hisense...
GoPro HERO13 Black: la versione completa...
L'Europa fa retromarcia sugli obblighi p...
Amazon Black Friday: 2 portatili gaming ...
50 idee regalo sotto i 50€, con gli scon...
Ecco un robot Lefant con mappatura laser...
Sundar Pichai (Google): il 'vibe coding'...
Lenovo Legion 7i, con una NVIDIA GeForce...
Sconti fino al 40% sui robot Roborock: l...
Stampante HP quasi regalata per il Black...
POCO lancia due nuovi tablet: ecco Pad X...
Leonardo ha svelato Michelangelo Dome, i...
iPhone Air non convince e i produttori c...
Prime Video supera Netflix in Italia? So...
Qualcomm Snapdragon 8 Elite Gen 6 avr&ag...
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: 10:00.


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