Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 29

Discussione: [java] thread & applet

  1. #11
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    è al post precedente,

    www.java.com

    c'è il link per il download sulla destra.
    Saluti!
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  2. #12
    Originariamente inviato da LeleFT
    Io l'ho provata con AppletViewer... basta che vai al prompt dei comandi, nella posizione dove hai il file .html che dovrebbe far partire l'applet e digiti la seguente riga di codice:
    codice:
    appletviewer nomefile.html
    appletviewer è un comando messo a disposizione dalla JDK che serve a visualizzaer le applet senza dover avviare il browser. Molto utile quando il browser non è configurato per adoperare la JRE della Sun, ma la Microsoft VM (per default).


    Ciao.

    Con l'applet viewer mi da il seguente errore:

    codice:
    C:\java\applet>appletviewer applet.html
    Avviso: Impossibile leggere il file di proprietÓ di AppletViewer: D:\Documents a
    nd Settings\root\.hotjava\properties verranno utilizzati i valori di default.
    prova
    java.lang.Error: Do not use applet.add() use applet.getContentPane().add() inste
    ad
            at javax.swing.JApplet.createRootPaneException(JApplet.java:203)
            at javax.swing.JApplet.addImpl(JApplet.java:225)
            at java.awt.Container.add(Container.java:307)
            at applet.init(applet.java:19)
            at sun.applet.AppletPanel.run(AppletPanel.java:353)
            at java.lang.Thread.run(Thread.java:534)
    E mi visualizza la finestrella bianca tranne che per l'ultima riga in cui mi dice "Avvio: applet non inizializzato".

    Cosa può essere?

  3. #13
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Significa che AppletViewer non funziona correttamente (o non è configurato correttamente )... lo dava anche a me quel messaggio in una macchina (ora non ricordo dove).


    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

  4. #14
    Originariamente inviato da LeleFT
    Significa che AppletViewer non funziona correttamente (o non è configurato correttamente )... lo dava anche a me quel messaggio in una macchina (ora non ricordo dove).


    Ciao.
    Ecco quindi come risolvo il problema? devo scaricare la jre? ma non dovrebbe già essere inclusa nell'sdk che utilizzo per compilare ?

  5. #15
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Sì... è già inclusa... quello che mi sento di consigliarti è di provare l'applet in un'altra macchina.


    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

  6. #16
    Originariamente inviato da LeleFT
    Sì... è già inclusa... quello che mi sento di consigliarti è di provare l'applet in un'altra macchina.


    Ciao.
    Anche perchè l'applet di prova del mio libro me la apre senza problemi, ed è la seguente:

    codice:
    import java.awt.Color;
    import java.awt.Graphics;
    import java.util.Date;
    import javax.swing.JApplet;
    
    public class ClockApplet extends JApplet
        implements Runnable
    {
    
        public ClockApplet()
        {
            clockFace = "";
        }
    
        public void init()
        {
            updateThread = null;
        }
    
        public void start()
        {
            if(updateThread == null)
            {
                updateThread = new Thread(this);
                updateThread.start();
            }
        }
    
        public void run()
        {
            Thread thread = Thread.currentThread();
            do
            {
                if(updateThread != thread)
                    break;
                try
                {
                    Thread _tmp = thread;
                    Thread.sleep(100L);
                }
                catch(InterruptedException interruptedexception)
                {
                    break;
                }
                repaint();
            } while(true);
        }
    
        public void paint(Graphics g)
        {
            Date date = new Date();
            g.setColor(Color.WHITE);
            g.drawString(clockFace, 10, 20);
            clockFace = date.toString();
            g.setColor(Color.BLUE);
            g.drawString(clockFace, 10, 20);
        }
    
        public void stop()
        {
            updateThread = null;
        }
    
        private Thread updateThread;
        private String clockFace;
    }
    L'unica cosa che mi lascia pernsare è che sul pannelo di controllo di java se selziono mozzilla come browser (firefox dovrebbe essere mozzilla alla fin fine no?) mi dice che non è installato.. ma in ogni caso altre applet firefox me le visualizza!

    Cmq ho appena eseguito il test del sito di java e mi dice che è tutto installato correttamente..

  7. #17
    Ho cambiato il nome dell'applet e adesso va, probabilmente era un nome riservato.

    Voglio chiedervi un ultima cosa e poi smetto di rompere.. almeno su questo argomento

    Come si fa ad utilizzare in un applet l'ActionListener, insomma per ricevere input dai vari oggetti ?

    Se sareste cosi gentili da tradurmi un programma tipo questo in modo da farlo funzionare in un applet (magari con qualche spiegazione) ve ne sarei grato!

    codice:
    //Includo le librerie per l'interfaccie grafiche
    
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    //Creo la classe con gli oggetti frafici
    public class grafica implements ActionListener {
    	
    	//Variabili per settare il Layout
    	private static final int WINDOW_WIDTH = 500; //pixel
    	private static final int WINDOW_HEIGHT = 150;//pixel
    	private static final int FIELD_WIDTH = 20; // caratteri
    	private static final int AREA_WIDTH = 40; // caratteri
    	
    	//private static final FlowLayout LAYOUT_STYLE =
    	//	new FlowLayout();
    		
    	private static final SpringLayout LAYOUT_STYLE = new SpringLayout();
    		
    	private static final String INTESTAZIONE = "Inserisci i due numeri da sommare:";
    	private static final String SPAZIO = "";
    	
    	//finestra per l'interfaccia grafica
    	private JFrame window = new JFrame("grafica.class");
    	
    	//Stampo l'intestazione
    	private JTextArea intarea = new JTextArea(INTESTAZIONE, 2, 
    		AREA_WIDTH);
    	
    	private JTextArea vuoto = new JTextArea(SPAZIO, 2, AREA_WIDTH);
    		
    	//Campo per l'inserimento del primo num
    	private JLabel primoTag = new JLabel("  Primo numero");
    	private JTextField primoText = new JTextField(FIELD_WIDTH);
    	
    	//Campo per l'inserimento del secondo numero
    	private JLabel secondoTag = new JLabel("  Secondo numero");
    	private JTextField secondoText = new JTextField(FIELD_WIDTH);
    	 
    	//Campo per il risultato
    	private JLabel sommaTag = new JLabel("  Risultato");
    	private JTextField sommaText = new JTextField(FIELD_WIDTH);
    	
    	//pulsante di esecuzione
    	private JButton run = new JButton("Somma");
    	
    	public grafica(){
    		//configura GUI
    		window.setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
    		window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		
    		window.setResizable(false);
    		
    		intarea.setEditable(false);
    		intarea.setLineWrap(true);
    		intarea.setWrapStyleWord(true);
    		intarea.setBackground(window.getBackground());
    		
    		vuoto.setEditable(false);
    		vuoto.setLineWrap(true);
    		vuoto.setWrapStyleWord(true);
    		vuoto.setBackground(window.getBackground());
    		
    		sommaText.setEditable(false);
    		sommaText.setBackground(Color.WHITE);
    		
    		//Registra il rilevatore di eventi
    		run.addActionListener(this);
    		
    		//aggiunge i componenti alla finestra
    		Container c = window.getContentPane();
                         
    		//c.setLayout(LAYOUT_STYLE);
    		c.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
    		
    		c.setLayout(new GridLayout(0,2));	
    		c.add(vuoto);
    		c.add(intarea);
    		c.add(primoText);
    		c.add(primoTag);
    		c.add(secondoText);
    		c.add(secondoTag);
    		c.add(sommaText);
    		c.add(sommaTag);
    		c.add(run);
                                 
    		
    		//visualizza GUI
    		window.show();
    		}
    	//Gestore degli eventi
    	public void actionPerformed(ActionEvent e){
    		
    		//recupera le risposte dell'utente
    	  	String response1 = primoText.getText();
    	  	double p = Double.parseDouble(response1);
    	  	String response2 = secondoText.getText();
    	  	double s = Double.parseDouble(response2);
    	  	
    	  	//visualizza somma
    	  	double Doutput = p + s;
    	  	String output = String.valueOf(Doutput);
    	  	sommaText.setText(output);
    		}
    		
    	//main, punto d'ingresso dell'applicazione
    	  public static void main(String[] args) {
    	  	grafica gui = new grafica();
    	  }
    }
    Grazie mille in anticipo,
    Guylmaster.

  8. #18
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    come vedrai c'è poco da commentare

    codice:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    //Creo la classe con gli oggetti frafici
    public class grafica extends JApplet implements ActionListener {
    
            //Variabili per settare il Layout
            private static final int WINDOW_WIDTH = 500; //pixel
            private static final int WINDOW_HEIGHT = 150;//pixel
            private static final int FIELD_WIDTH = 20; // caratteri
            private static final int AREA_WIDTH = 40; // caratteri
    
            //private static final FlowLayout LAYOUT_STYLE =
            //	new FlowLayout();
    
            private static final SpringLayout LAYOUT_STYLE = new SpringLayout();
    
            private static final String INTESTAZIONE = "Inserisci i due numeri da sommare:";
            private static final String SPAZIO = "";
    
            //finestra per l'interfaccia grafica
            private JPanel window = new JPanel();
    
            //Stampo l'intestazione
            private JTextArea intarea = new JTextArea(INTESTAZIONE, 2, 
                    AREA_WIDTH);
    
            private JTextArea vuoto = new JTextArea(SPAZIO, 2, AREA_WIDTH);
    
            //Campo per l'inserimento del primo num
            private JLabel primoTag = new JLabel("  Primo numero");
            private JTextField primoText = new JTextField(FIELD_WIDTH);
    
            //Campo per l'inserimento del secondo numero
            private JLabel secondoTag = new JLabel("  Secondo numero");
            private JTextField secondoText = new JTextField(FIELD_WIDTH);
    
            //Campo per il risultato
            private JLabel sommaTag = new JLabel("  Risultato");
            private JTextField sommaText = new JTextField(FIELD_WIDTH);
    
            //pulsante di esecuzione
            private JButton run = new JButton("Somma");
    
            public void init() {
                    //configura GUI
                    window.setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
                    //window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
                    //window.setResizable(false);
    
                    intarea.setEditable(false);
                    intarea.setLineWrap(true);
                    intarea.setWrapStyleWord(true);
                    intarea.setBackground(window.getBackground());
    
                    vuoto.setEditable(false);
                    vuoto.setLineWrap(true);
                    vuoto.setWrapStyleWord(true);
                    vuoto.setBackground(window.getBackground());
    
                    sommaText.setEditable(false);
                    sommaText.setBackground(Color.WHITE);
    
                    //Registra il rilevatore di eventi
                    run.addActionListener(this);
    
                    //aggiunge i componenti alla finestra
                    //Container c = window.getContentPane();
    
                    //c.setLayout(LAYOUT_STYLE);
                    window.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
    
                    window.setLayout(new GridLayout(0,2));	
                    window.add(vuoto);
                    window.add(intarea);
                    window.add(primoText);
                    window.add(primoTag);
                    window.add(secondoText);
                    window.add(secondoTag);
                    window.add(sommaText);
                    window.add(sommaTag);
                    window.add(run);
    
    
                    //visualizza GUI
                    getContentPane().add(window);
                    }
            //Gestore degli eventi
            public void actionPerformed(ActionEvent e){
    
                    //recupera le risposte dell'utente
                      String response1 = primoText.getText();
                      double p = Double.parseDouble(response1);
                      String response2 = secondoText.getText();
                      double s = Double.parseDouble(response2);
    
                      //visualizza somma
                      double Doutput = p + s;
                      String output = String.valueOf(Doutput);
                      sommaText.setText(output);
                    }
    
            //main, punto d'ingresso dell'applicazione         
    }
    ho semplicemente trasformato window da JFrame a JPanel, eliminato il metodo main, rinominato il costruttore, aggiunto tutti gli elementi a window direttamente e quindi aggiunto window all'applet (si poteva anche impostare il layout manager all'applet ed aggiungere i componenti alla stessa...).
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #19
    Originariamente inviato da Andrea1979
    come vedrai c'è poco da commentare

    codice:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    //Creo la classe con gli oggetti frafici
    public class grafica extends JApplet implements ActionListener {
    
            //Variabili per settare il Layout
            private static final int WINDOW_WIDTH = 500; //pixel
            private static final int WINDOW_HEIGHT = 150;//pixel
            private static final int FIELD_WIDTH = 20; // caratteri
            private static final int AREA_WIDTH = 40; // caratteri
    
            //private static final FlowLayout LAYOUT_STYLE =
            //	new FlowLayout();
    
            private static final SpringLayout LAYOUT_STYLE = new SpringLayout();
    
            private static final String INTESTAZIONE = "Inserisci i due numeri da sommare:";
            private static final String SPAZIO = "";
    
            //finestra per l'interfaccia grafica
            private JPanel window = new JPanel();
    
            //Stampo l'intestazione
            private JTextArea intarea = new JTextArea(INTESTAZIONE, 2, 
                    AREA_WIDTH);
    
            private JTextArea vuoto = new JTextArea(SPAZIO, 2, AREA_WIDTH);
    
            //Campo per l'inserimento del primo num
            private JLabel primoTag = new JLabel("  Primo numero");
            private JTextField primoText = new JTextField(FIELD_WIDTH);
    
            //Campo per l'inserimento del secondo numero
            private JLabel secondoTag = new JLabel("  Secondo numero");
            private JTextField secondoText = new JTextField(FIELD_WIDTH);
    
            //Campo per il risultato
            private JLabel sommaTag = new JLabel("  Risultato");
            private JTextField sommaText = new JTextField(FIELD_WIDTH);
    
            //pulsante di esecuzione
            private JButton run = new JButton("Somma");
    
            public void init() {
                    //configura GUI
                    window.setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
                    //window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
                    //window.setResizable(false);
    
                    intarea.setEditable(false);
                    intarea.setLineWrap(true);
                    intarea.setWrapStyleWord(true);
                    intarea.setBackground(window.getBackground());
    
                    vuoto.setEditable(false);
                    vuoto.setLineWrap(true);
                    vuoto.setWrapStyleWord(true);
                    vuoto.setBackground(window.getBackground());
    
                    sommaText.setEditable(false);
                    sommaText.setBackground(Color.WHITE);
    
                    //Registra il rilevatore di eventi
                    run.addActionListener(this);
    
                    //aggiunge i componenti alla finestra
                    //Container c = window.getContentPane();
    
                    //c.setLayout(LAYOUT_STYLE);
                    window.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
    
                    window.setLayout(new GridLayout(0,2));	
                    window.add(vuoto);
                    window.add(intarea);
                    window.add(primoText);
                    window.add(primoTag);
                    window.add(secondoText);
                    window.add(secondoTag);
                    window.add(sommaText);
                    window.add(sommaTag);
                    window.add(run);
    
    
                    //visualizza GUI
                    getContentPane().add(window);
                    }
            //Gestore degli eventi
            public void actionPerformed(ActionEvent e){
    
                    //recupera le risposte dell'utente
                      String response1 = primoText.getText();
                      double p = Double.parseDouble(response1);
                      String response2 = secondoText.getText();
                      double s = Double.parseDouble(response2);
    
                      //visualizza somma
                      double Doutput = p + s;
                      String output = String.valueOf(Doutput);
                      sommaText.setText(output);
                    }
    
            //main, punto d'ingresso dell'applicazione         
    }
    ho semplicemente trasformato window da JFrame a JPanel, eliminato il metodo main, rinominato il costruttore, aggiunto tutti gli elementi a window direttamente e quindi aggiunto window all'applet (si poteva anche impostare il layout manager all'applet ed aggiungere i componenti alla stessa...).
    C'è qualcosa che non va, il codice me lo compila ma questa volta mi appare una bella X rossa e non me la carica.. questa volta che può essere?

  10. #20
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    hai cambiato il nome nel file html?
    la classe si chiama grafica... per cui dovrebbe essere qualcosa del genere

    codice:
    <html>
      <body>
        <applet width="500" height="150" code="grafica.class"></applet>
      </body>
    </html>
    Saluti
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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 © 2026 vBulletin Solutions, Inc. All rights reserved.