Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    148

    problema errore:non static method...

    il compilatore durante la compilazione mi da il seguente errore: "non static method cl() cannot be refernced from a static context". come posso risolvere?

    il codice è il seguente:
    codice:
    public class fin2 extends JFrame{
        
        public fin2(){
            Finestra finestra=new Finestra();
            setLayout(new GridLayout(3,1));
            setSize(200,400);
            setTitle("action table");
            setLocation(1200,110);
            JLabel label = new JLabel("clicca sulla finestra affianco");
            add(label);
            Button b=new Button("");
            Ascolto a1= new Ascolto();
            b.addActionListener(a1);
            add(b);
            Button b2=new Button("");
            add(b2);
            setVisible(true);
            
        }
        private class Ascolto implements ActionListener
        {
            public void actionPerformed(ActionEvent E)
            {
                Finestra.cl();
            }
        }
        public static void main(String[] args) {
         new fin2();
        }
        
    }
    codice:
    public class Finestra extends JFrame implements MouseListener {
        private int x, y;  
        boolean end=false;
        BufferedReader Tastiera = new BufferedReader(new InputStreamReader(System.in));
        public gestione g=new gestione();
        private JLabel la = new JLabel("clicca sullo schermo!",JLabel.RIGHT);
        
        public Finestra() {
            try {
            \\
           
           
            }
    catch (AWTException exception){}
        }
     public void cl(){
            try{
                 Robot r= new Robot();
                // Creates the delay of 5 sec so that you can open notepad before
                // Robot start writting
                for(int i=0;i<=g.passadimmax();i++){
                r.delay(g.gestioneclick[i].tempo);
                r.mouseMove(g.gestioneclick[i].x,g.gestioneclick[i].y);
                r.mousePress(InputEvent.BUTTON1_MASK);
                r.mouseRelease( InputEvent.BUTTON1_MASK );
                r.delay(25);
                r.mousePress(InputEvent.BUTTON1_MASK);
                r.mouseRelease( InputEvent.BUTTON1_MASK );
                System.out.println("ok...click eseguito");
            }
                
            } catch (AWTException e) {
                e.printStackTrace();
            }
        }
        
    public void ins(int cx,int cy){
        try{
        \\
        
        } catch (Exception e) {
                e.printStackTrace();
            }
    }
    
        
        
        public void mousePressed(MouseEvent e) {
            x = e.getX();
            y = e.getY();
            System.out.println("x = " + x + " y = " + y); 
            
            ins(x,y);
            setExtendedState(ICONIFIED);
            
        }
    
        public void mouseReleased(MouseEvent e) { }
        public void mouseEntered(MouseEvent e) { }
        public void mouseExited(MouseEvent e) { }
        public void mouseClicked(MouseEvent e) { }
    
       
    }

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

    Re: problema errore:non static method...

    Originariamente inviato da killerbomb
    il compilatore durante la compilazione mi da il seguente errore: "non static method cl() cannot be refernced from a static context". come posso risolvere?
    Nel costruttore di fin2 hai istanziato un oggetto Finestra:

    codice:
        public fin2(){
            Finestra finestra=new Finestra();
    Sarebbe meglio che questa variabile la metti come variabile di istanza, altrimenti solo come variabile locale del costruttore probabilmente non te ne fai granché ....

    E a quel punto nel actionPerformed() fai:

    codice:
    finestra.cl();
    Nota ... finestra ... la variabile, non la classe!!
    E tecnicamente compilerebbe .... ammesso che poi sia quello che volevi fare e con il risultato che ti aspettavi ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.