Applet

Forum di discussione sul linguaggio Java e JSP

Moderatore: Toki

Regole del forum
Leggi: IProgrammatori.it - Regolamento Forum
trixy
Utente Junior
Messaggi: 68
Iscritto il: 03 nov 2017, 00:20

Applet

Messaggioda trixy » 12 gen 2018, 19:21

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.

Codice: Seleziona tutto

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]);
   }
}
Avatar utente
andbin
Utente Senior
Messaggi: 3115
Iscritto il: 30 ott 2013, 21:51

Re: Applet

Messaggioda andbin » 12 gen 2018, 22:01

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:

Codice: Seleziona tutto

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

Codice: Seleziona tutto

   {
   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. ;)
Andrea, www.andbin.net — Senior Java developer — SCJP 5 (91%) – SCWCD 5 (94%)
Il mio blog sulla programmazione
trixy
Utente Junior
Messaggi: 68
Iscritto il: 03 nov 2017, 00:20

Re: Applet

Messaggioda trixy » 12 gen 2018, 22:50

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.
Avatar utente
andbin
Utente Senior
Messaggi: 3115
Iscritto il: 30 ott 2013, 21:51

Re: Applet

Messaggioda andbin » 12 gen 2018, 23:15

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.
Andrea, www.andbin.net — Senior Java developer — SCJP 5 (91%) – SCWCD 5 (94%)
Il mio blog sulla programmazione
trixy
Utente Junior
Messaggi: 68
Iscritto il: 03 nov 2017, 00:20

Re: Applet

Messaggioda trixy » 12 gen 2018, 23:28

Ho inserito il seguente file HTML nella cartella bin dove è contenuto il file .class dell'applet enalotto funzionante

Codice: Seleziona tutto

<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>
trixy
Utente Junior
Messaggi: 68
Iscritto il: 03 nov 2017, 00:20

Re: Applet

Messaggioda trixy » 12 gen 2018, 23:40

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........ f1
Avatar utente
andbin
Utente Senior
Messaggi: 3115
Iscritto il: 30 ott 2013, 21:51

Re: Applet

Messaggioda andbin » 12 gen 2018, 23:45

trixy ha scritto:

Codice: Seleziona tutto

<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: Using applet, object and embed Tags
Andrea, www.andbin.net — Senior Java developer — SCJP 5 (91%) – SCWCD 5 (94%)
Il mio blog sulla programmazione
trixy
Utente Junior
Messaggi: 68
Iscritto il: 03 nov 2017, 00:20

Re: Applet

Messaggioda trixy » 12 gen 2018, 23:51

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....

Torna a “Java”

Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti