Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Riguardo alla "compilazione" di un applet Java

    Allora ragazzi io, sto da poco studiando questo linguaggio di programmazione, e sono alle prime armi.
    Ho scritto questo codice per creare un applet java in un Browser Web, e specificamente è un semaforo, con le luci rosso, giallo, e verde. Premendo uno dei tasti si dovrebbero accendere le rispettive luci abbinate ai relativi tasti.
    QUESTO E' il CODICE:

    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;

    public class Semaforo extends Applet {
    int luce = 0;
    // 0 luci spente, 1 rosso
    // 2 giallo, 3 verde
    int yRosso=20;
    int yGiallo=50;
    int yVerde=80;
    int ySpegni=120;
    Button pulsanteRosso;
    Button pulsanteGiallo;
    Button pulsanteVerde;
    Button pulsanteSpegni;

    public void init() {
    setLayout(null);


    pulsanteRosso = new Button("Rosso");
    pulsanteRosso.setBounds(20, yRosso, 80, 20);

    pulsanteGiallo = new Button("Giallo");
    pulsanteGiallo.setBounds(20, yGiallo, 80, 20);

    pulsanteVerde = newButton("Verde");
    pulsanteVerde.setBounds(20, yVerde, 80, 20);

    pulsanteSpegni = newButton("Spegni");
    pulsanteSpegni.setBounds (40, ySpegni, 80, 20);

    add(pulsanteRosso);
    add(pulsanteGiallo);
    add(pulsanteVerde);
    add(pulsanteSpegni);

    ActionListener al = new ActionListener() {
    public void actionPerformed(ActionEvent
    evento) {
    Object s == evento.getSource();
    if (s == pulsanteRosso)
    Rosso();
    else if (s == pulsanteGiallo)
    Giallo();
    else if (s == pulsanteVerde)
    Verde();
    else if (s == pulsanteSpegni)
    Spegni();
    }

    };

    pulsanteRosso.addActionListener(al);
    pulsanteGiallo.addActionListener(al);
    pulsanteVerde.addActionListener(al);
    pulsanteSpegni.addActionListener(al);

    }


    void Rosso() {
    luce = 1;
    repaint();

    }

    void Giallo() {
    luce = 2;
    repaint();

    }

    void Verde() {
    luce = 3;
    repaint();

    }

    void Spegni()
    luce = 0;
    repaint();

    }

    public void paint(Graphics g) {

    g.setColor(Color.gray);
    g.fillRect(110, yRosso-10, 40, 100);

    switch (luce) {

    case 1:
    g.setColor(Color.red);
    g.fillOval(120, yRosso, 20, 20);
    g.setColor(Color.black);
    g.fillOval(120, yGiallo, 20, 20);
    g.fillOval(120, yVerde, 20, 20);
    break;

    case 2:
    g.setColor(Color.yellow);
    g.fillOval(120, yGiallo, 20, 20);
    g.setColor(Color.black);
    g.fillOval(120, yRosso, 20, 20);
    g.fillOval(120, yVerde, 20, 20);
    break;

    case 3:
    g.setColor(Color.green);
    g.fillOval(120, yVerde, 20, 20);
    g.setcolor(Color.black);
    g.fillOval(120, yRosso, 20, 20);
    g.fillOval(120, yGiallo, 20, 20);
    break;

    case 0:
    g.setcolor(Color.black);
    g.fillOval(120, yRosso, 20, 20);
    g.fillOval(120, yGiallo, 20, 20);
    g.fillOval(120, yVerde, 20, 20);
    }
    }

    }



    Adesso volevo sapere, perchè dopo averlo salvato con nome ed estensione, "semaforo.java" con un blocco note di Windows (quindi eseguendo nel prompt dei comandi, la compilazione javac semaforo.java) non mi da il formato di bytecode con estensione semaforo.class,(dove dovrei poi eseguire l'esecuzione dell'applet) ma mi escono nel prompt dei comandi degli errori!!!! COSA HO SBAGLIATO???? Non riesco a capire!! Vi chiedo aiuto, anche perchè mi interessa molto.Aspetto vostre risposte!! non mi da il formato di bytecode con estensione semaforo.class

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Riguardo alla "compilazione" di un applet Java

    Originariamente inviato da TommyVercetti06
    Adesso volevo sapere, perchè dopo averlo salvato con nome ed estensione, "semaforo.java" con un blocco note di Windows (quindi eseguendo nel prompt dei comandi, la compilazione javac semaforo.java) non mi da il formato di bytecode con estensione semaforo.class,(dove dovrei poi eseguire l'esecuzione dell'applet) ma mi escono nel prompt dei comandi degli errori!!!! COSA HO SBAGLIATO???? Non riesco a capire!! Vi chiedo aiuto, anche perchè mi interessa molto.Aspetto vostre risposte!! non mi da il formato di bytecode con estensione semaforo.class
    Innanzitutto il codice così come l'hai postato ha degli errori di sintassi/scrittura, tipo:

    Object s == evento.getSource(); // deve essere una assegnazione con =

    pulsanteVerde = newButton("Verde"); // stacca new da Button

    oppure

    g.setcolor(Color.black); // metti setColor

    Quindi controlla bene il sorgente. Una volta che hai sistemato gli errori, compila con:

    javac Semaforo.java

    Dal momento che la classe è "public" e si chiama Semaforo (S maiuscola), il file sorgente deve deve essere denominato Semaforo.java!!!

    Dopodiché devi creare un file .html del tipo:

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Semaforo</title>
    </head>
    <body>
    
    <applet code="Semaforo.class" width="300" height="120">
    </applet>
    
    </body>
    </html>
    Quindi apri il file html con un browser che supporta Java.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    mi da sempre questi errori nel prompt dei comandi:

    Semaforo.java:81: ';' expected
    void Spegni() ^

    Semaforo.java:83: invalid method declaration; return type required
    repaint();
    ^

    Semaforo.java:87: class, interface, or enum expected
    public void paint (Graphics g) {
    ^



    //da qui tutta una serie di errori
    //e li segna dove c'è la g.fillRect, poi
    // g.setColor, ecc.



    Semaforo.java:90: class, interface, or enum expected
    g.fillRect(110, yRosso-10, 40, 100);
    ^


    Aiutatemi!!!!

  4. #4
    Manca la parentesi graffa di apertura del metodo:

    codice:
    void Spegni() {
    ......
    Gli altri errori credo che siano conseguenza di questo.

    Ciao,

  5. #5
    grazie. ma adesso mi da solo 1 errore invece di 29, ed è:


    Semaforo.java:113:cannot find symbol
    symbol:method setcolor(java.awt.Color)
    location: class java.awt.Graphics
    g.setcolor(Color.black);
    ^

    1 error

  6. #6
    Ricorda che Java è case-sensitive: il metodo si chiama setColor(), con la C maiuscola...

    Ciao,

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Ti era già stato detto da andbin:
    codice:
    g.setColor(Color.black);
    La C va maiuscola.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    grazie ragazzi!!!!!!!!!!!!!!!!!!!!! adesso tutto a posto!!!!




    Comunque sto studiando java, ma mi riesce un pò difficile, proprio scrivere in codice facendo degli esempi.
    Non ho tante idee da applicare per fare un esercizio mio, forse perchè è ancora troppo presto, visto che lo stò studiando da poco?????

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.