Applet

di il
7 risposte

Applet

Ciaoa tutti!

Ho provato a fare questa applet in due modi. Nel primo non ho usato nè array nè cicli for ed ho creato tutte le caselle di testo e in ogni casella di testo ho memorizzato un numero random. Nel secondo ho voluto fare qualcosa di più professionale ma l'applet non viene inizializzata.
import java.awt.*;
import javax.swing.*;

public class Enalotto2 extends JApplet
{	
	private int i;
	private JPanel p = new JPanel();
	private JLabel lblEnalotto = new JLabel("Estrazione enalotto");
	private JTextField [] txt = new JTextField[i];{
	for(i=0; i<5; i++)
	{
		txt[i] = new JTextField ();
	}
	}
	
	public void init()
	{
		generaNumeri();
		p.setLayout(new GridLayout(1,6));
		p.add(lblEnalotto);
		p.add(txt[i]);
		getContentPane().add(p);
	}
	public void generaNumeri()
	{
		String [] n = new String [i];
		int [] numero = new int[i];
		numero[i] = (int) (Math.random()*100);
		n[i]=Integer.toString(numero[i]);
		txt[i].setText(""+n[i]);
	}
}

7 Risposte

  • Re: Applet

    trixy ha scritto:


    Nel secondo ho voluto fare qualcosa di più professionale ma l'applet non viene inizializzata.
    Il codice è comunque inappropriato per come avviene la inizializzazione.

    Quando viene inizializzato il campo:
    private JTextField [] txt = new JTextField[i];
    la variabile i è ancora al suo valore di "default", cioè 0. Quindi crei un array di JTextField sostanzialmente vuoto, senza elementi.

    Poi appena dopo viene eseguito un instance initialization block
       {
       for(i=0; i<5; i++)
       {
          txt[i] = new JTextField ();
       }
       }
    Ma gli elementi NON ci sono. Quindi al primo txt[0] hai un ArrayIndexOutOfBoundsException. Questo fa fallire tutta la fase di inizializzazione, ovvero il costruttore (quello di default, generato dal compilatore) esce con quella eccezione.
    In sostanza, l'oggetto Enalotto2 NON viene creato e quindi non si arriva neanche al init() (né al resto, ovviamente).


    Se non hai (ancora) familiarità con la logica di inizializzazione degli oggetti, evita di strutturare la inizializzazione in quel modo.
  • Re: Applet

    Ma non ho capito se le applet vengono ancora utilizzate. Firefox dice che dalla versione 52 limiterà l'utilizzo dei plug in e quindi di java.

    In ogni caso le applet che ho realizzato come esercizio e che funzionano con Eclipse, sui browser Mozilla e IE compare la scritta: Appletnon eseguita, che corrisponde alla scritta che ho inserito tra i tag OBJECT del file HTML.
  • Re: Applet

    trixy ha scritto:


    Ma non ho capito se le applet vengono ancora utilizzate.
    In generale, al giorno d'oggi, sono parecchio in disuso. Trovarle su internet (e per qualcosa di davvero utile) è raro ...

    trixy ha scritto:


    Firefox dice che dalla versione 52 limiterà l'utilizzo dei plug in e quindi di java.
    Firefox 52 è del Marzo 2017. Quindi sono già 10 mesi che la NPAPI è stata rimossa.
    Chrome addirittura l'ha rimossa dal 2015, se ben ricordo.

    trixy ha scritto:


    sui browser Mozilla e IE compare la scritta: Appletnon eseguita, che corrisponde alla scritta che ho inserito tra i tag OBJECT del file HTML.
    Senza vedere cosa hai e cosa hai fatto comunque non saprei dire se c'è dell'altro oppure no.
  • Re: Applet

    Ho inserito il seguente file HTML nella cartella bin dove è contenuto il file .class dell'applet enalotto funzionante
    <HTML>
    <HEAD>
    <TITLE> Enalotto </TITLE> 
    </HEAD>
    <BODY>
    <OBJECT CODETYPE= "application/java" CLASSID= "java: Enalotto.class" WIDTH="300" HEIGHT="200">
    Applet non eseguibile.
    </OBJECT>
    </BODY>
    </HTML>
  • Re: Applet

    In generale, al giorno d'oggi, sono parecchio in disuso. Trovarle su internet (e per qualcosa di davvero utile) è raro ...
    Allora posso evitare di studiare le applet e di fare esercizi........
  • Re: Applet

    trixy ha scritto:


    <OBJECT CODETYPE= "application/java" CLASSID= "java: Enalotto.class" WIDTH="300" HEIGHT="200">
    
    Comunque non mi pare che si usi così il <object>.

    Se volessi approfondire:
  • Re: Applet

    Comunque non mi pare che si usi così il <object>.
    Mi sa che sto leggendo degli argomenti troppo vecchi...........
    Negli esempi che mi ritrovo viene usato come ho postato prima per visualizzare le applet in mozzilla.
    Se guardo sulle guide ufficiali capisco che è un metodo obsoleto i HTML5 e non trovo esempi con applet.
    Mi sa che devo abbandonare l'argomento applet....
Devi accedere o registrarti per scrivere nel forum
7 risposte