Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di L_92
    Registrato dal
    Nov 2010
    Messaggi
    20

    Problema con la classe Action Listener

    Ho creato una semplice classe per realizzare un' interfaccia che mi permette di calcolare il 20 % di un numero:
    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    class venti extends JFrame implements ActionListener
    {
      private JPanel p = new JPanel();
      private JLabel e1 = new JLabel ("Numero");
      private JLabel e2 = new JLabel ("Premi per calcolare il 20 %");
      private JTextField t1 = new JTextField(20);
      private JButton b = new JButton("20 %");
    
      public void venti()
      {
       
       Container c = this.getContentPane();
       c.add(p);
    
       //aggiunge le componenti al pannello
       p.setLayout(new GridLayout(2,2,10,10));
       p.add(e1);
       p.add(t1);
       p.add(e2);
       p.add(b);
    
       //ascoltatore
       b.addActionListener(this);
      
       b.setActionCommand("Premi per calcolare il 20 %");   
    
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       } 
    
       public void ActionPerformed(ActionEvent e)
       {
        String s = t1.getText();
        float n = Float.valueOf(s).intValue();
        n = (n/100)*20;
        t1.setText(""+n);
       }
    }
    Nella compilazione mi dà solo un errore:
    -venti.java:5: venti is not abstract and does not override abstract method action ...

    Qualcuno mi sa dire come correggere quest'errore???

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

    Re: Problema con la classe Action Listener

    Originariamente inviato da L_92
    codice:
       public void ActionPerformed(ActionEvent e)
    Nella compilazione mi dà solo un errore:
    -venti.java:5: venti is not abstract and does not override abstract method action ...
    Il nome del metodo non lo puoi stabilire tu ... lo stabilisce la interfaccia.
    Ed è actionPerformed. "a" minuscola.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di L_92
    Registrato dal
    Nov 2010
    Messaggi
    20
    ok risolto.
    grazie mille

  4. #4
    Utente di HTML.it L'avatar di L_92
    Registrato dal
    Nov 2010
    Messaggi
    20
    Purtroppo, in fase di compilazione del main mi da un altro errore.
    Questo è il main:
    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    class Usa 
    {
     public static void main(String argv[])
     {
      venti a = new venti();
      a.setTitle("Esercizio");
      a.pack();
      a.setVisible(true);
      }
    }
    L'errore è "cannot find symbol"
    symbol: class venti

    In pratica non mi riconosce la classe venti, non capisco perché, dato che la compilazione è andata a buon fine e quest' ultima si trova nella stessa directory in cui si trova il main.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    7
    nella riga "public void venti()"
    prova togliendo il void visto che il costruttore nn ha valore di ritorno

  6. #6
    Utente di HTML.it L'avatar di L_92
    Registrato dal
    Nov 2010
    Messaggi
    20
    niente..mi dà sempre lo stesso errore

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Hai provato a mettere la classe pubblica? Per ora mi pare sia "default"
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    7
    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class Venti extends JFrame implements ActionListener
    {
      private JPanel p = new JPanel();
      private JLabel e1 = new JLabel ("Numero");
      private JLabel e2 = new JLabel ("Premi per calcolare il 20 %");
      private JTextField t1 = new JTextField(20);
      private JButton b = new JButton("20 %");
    
      public Venti()
      {
       
       Container c = this.getContentPane();
       c.add(p);
    
       //aggiunge le componenti al pannello
       p.setLayout(new GridLayout(2,2,10,10));
       p.add(e1);
       p.add(t1);
       p.add(e2);
       p.add(b);
    
       //ascoltatore
       b.addActionListener(this);
      
       b.setActionCommand("Premi per calcolare il 20 %");   
    
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       } 
    
       public void actionPerformed(ActionEvent e)
       {
        String s = t1.getText();
        float n = Float.valueOf(s).intValue();
        n = (n/100)*20;
        t1.setText(""+n);
       }
    }
    codice:
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    class Usa 
    {
     public static void main(String argv[])
     {
      Venti a = new Venti();
      a.setTitle("Esercizio");
      a.pack();
      a.setVisible(true);
      }
    }
    prova cosi a me va

  9. #9
    Utente di HTML.it L'avatar di L_92
    Registrato dal
    Nov 2010
    Messaggi
    20
    continua ancora a non riconoscere la classe...

  10. #10
    scusate ma perchè argv e non args??
    è uguale??

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.