Visualizzazione dei risultati da 1 a 3 su 3

Discussione: problema con java

  1. #1

    problema con java

    ragazzi sto compilando il mio codice e mi da un errore che non riesco a risolvere datemi una mano!
    ECCO il codice:



    import java.awt.event.*;
    import java.awt.*;
    import javax.swing.*;
    import java.io.*;
    import javax.swing.text.JTextComponent.*;

    public class Start extends JFrame implements ActionListener{

    public Start(){

    super("VideoStore...");

    String s1= "Inserisci Un Nuovo Film!";
    String s2= "Visualizza i Film Registrati!";

    JButton b1=new JButton(s1);
    JButton b2=new JButton(s2);

    JPanel p1=new JPanel();

    p1.add(b1);
    p1.add(b2);

    setContentPane(p1);

    b1.addActionListener(this);
    b2.addActionListener(this);
    }



    //gestore del pulsante
    public void actionPerformed(ActionEvent evt){

    Object source = evt.getSource();

    if(source==b1){


    JFrame frame=new Film1();

    Dimension d = new Dimension(200,300);

    // chiusura della finestra principale
    WindowListener l=new WindowAdapter(){
    public void windowClosing(WindowEvent e){
    System.exit(0);
    }
    };
    frame.addWindowListener(l);

    frame.setSize(d);
    frame.setVisible(true);


    }
    if(source==b2){

    System.out.println("hai premuto il bottone sbagliato...");

    }


    }
    }




    e QUESTO E' L'ERRORE:


    D:\data\HDD\DARIO\Linguaggi\codice\progetto\Start. java:37: cannot resolve symbol
    symbol : variable b1
    location: class Start
    if(source==b1){
    ^
    D:\data\HDD\DARIO\Linguaggi\codice\progetto\Start. java:57: cannot resolve symbol
    symbol : variable b2
    location: class Start
    if(source==b2){
    ^
    2 errors


    cosa può essre?
    come posso risolvere il problema?
    baldambembo
    http:\\www.easy.3000.it

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Semplice: stai dichiarando b1 e b2 nel costruttore... quindi questi due oggetti vivono finchè vive il costruttore... quando il costruttore ha terminato il suo lavoro b1 e b2 vengono deallocati...

    Soluzione:

    dichiara b1 e b2 al di fuori di tutti i metodi, così li puoi referenziare da qualsiasi punto all'interno della classe (ti consiglio di far questo per tutti gli oggetti, anche le stringhe, così non hai problemi):

    codice:
    public class Start extends JFrame implements ActionListener{ 
    
       JButton b1;
       JButton b2; 
       String s1;
       String s2;
       JPanel p1;
    
       public Start(){ 
    
          super("VideoStore..."); 
    
          s1= "Inserisci Un Nuovo Film!"; 
          s2= "Visualizza i Film Registrati!"; 
    
          b1=new JButton(s1); 
          b2=new JButton(s2); 
    
          p1=new JPanel(); 
    
          p1.add(b1); 
          p1.add(b2); 
    
          setContentPane(p1); 
    
          b1.addActionListener(this); 
          b2.addActionListener(this); 
       } 
    
       ...
    }

    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

  3. #3

    grazie

    la soluzione era tanto ovvia che penso non ci sarei mai arrivato, sarei impazzito prima!
    grazie ancora
    baldambembo
    http:\\www.easy.3000.it

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