Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-12-2011, 17: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 17:46.
Player1 è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2011, 11: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, 17: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


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
iPhone 18 Pro e 18 Pro Max prenotabili s...
Anche Sam Altman ha paura: ecco i due sc...
Perplexity Portable Computer arriva su W...
Se l'IA sostituisse il lavoro i salari r...
Fujitsu Monaka è pronto: 144 core...
Il dispositivo ultra compatto che trasfo...
Bonus colonnine 2026: dal 22 settembre d...
Revolut, una cartella "Italy" ...
Le auto connesse possono vendere i tuoi ...
E se i computer elaborassero le informaz...
NVIDIA non ci sta: "Non lasceremo che l'...
Gli Stati Uniti hanno armi in orbita: ar...
Robot aspirapolvere in offerta su Amazon...
ChatGPT inventa testimoni falsi e un avv...
Find X10 Pro Max di OPPO arriverà...
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: 14:37.


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