Toon posts:

[Java] Actionlistener foutmeldingen, help!

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste GOT,

bij het runnen van mij applicatie krijg ik de volgende foutmelding die jbuilder 8 meldt:

not an interfaceA class can only implement an interface, not a class.

de stukje code waar de foutmelding zit ziet er als volgt uit:

public class HoofdFrame extends JFrame implements ActionListener
{
.............
............
}

ik heb daarboven de volgende regels geplaats die nodig zijn voor actionlistener:

import java.awt.event.*;

ik weet echt niet waarom jbuilder deze fout geeft. Ik weet 100% zeker dat Actionlistener een interface is en geen classe.

ik hoop dat jullie mij kunnen helpen,

greetz

Verwijderd

Volgens mij moet public daar niet staan, maar meer zoiets:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class HoofdFrame extends JFrame implements ActionListener {

    public HoofdFrame() { //constructor
    }
        ...
    }
    
    public void actionPerformed(ActionEvent e) {
        ...
    }

    public static void main(String args[]) {
        HoofdFrame frame = new HoofdFrame();
    }
}

[ Voor 4% gewijzigd door Verwijderd op 08-11-2003 19:24 ]


Verwijderd

dubbelpost O+

[ Voor 97% gewijzigd door Verwijderd op 08-11-2003 19:13 ]


  • Donderwolk
  • Registratie: Januari 2002
  • Laatst online: 11-06 11:16
Dat public mag wel blijven staan hoor,
ik zou inderdaad eens proberen die abstracte methoden toe te voegen.
( public void actionPerformed( ActionEvent e ){} )

Pwnd


Verwijderd

Topicstarter
het probleem is niet dat ik wat verkeerd heb ingevoerd of zo maar dat jbuilder de ActionListener niet ziet als een interface maar een klasse.

Verwijderd

Heb je de ActionListener geimporteerd?

dus... import java.awt.event.*;


Edit: (.*) vergeten

[ Voor 20% gewijzigd door Verwijderd op 08-11-2003 19:27 ]


Verwijderd

Topicstarter
ja dat zit er al. dat ben ik niet vergeten. ik weet echt niet waarom dit fout is.:S

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 30-07 16:33
Probeer eens
Java:
1
2
public class HoofdFrame extends JFrame implements java.awt.event.ActionListener {
    ...

Verwijderd

Topicstarter
wow thnx man het heeft geholpen.

allemaal erg bedankt. ik ben weer happy:D

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Waarom doe je het niet zo?
Java:
1
2
3
4
5
6
7
public class HoofdFrame extends JFrame {

   // need a ActionListener here
   ActionListener l_okListener = new ActionListener() {
      public void actionPerformed( final ActionEvent p_event ) { ... }
   };
}

Zo houd je de logica voor een actionPerformed object gescheiden van je frame. Vaak is een Action object (zie de API) nog een betere keuze, als je de optie ook in een menu hebt staan :)

  • JeroenTheStig
  • Registratie: Mei 2000
  • Nu online
Waarom gebruik je actionlisteners, en geen actions? Probeer het eens op deze manier:

Java:
1
2
3
4
5
6
7
8
9
10
11
public class ButtonAction extends AbstractAction {
    public ButtonAction() {
        super("knopje");
        // of als je nog een leuk icoontje in je knop wilt hebben:
        super("knopje met een gifje", new ImageIcon("icon.gif"));
    }
        
    public void actionPerformed(ActionEvent e) {
        // doe iets
    }
}


en dan initialiseer je je knop(pen) op de volgende manier:

Java:
1
2
3
4
5
6
public class HoofdFrame extends JFrame{
    JButton _button;
    public void initComponents() {
        _button = new JButton(new ButtonAction());
    }
}

[ Voor 21% gewijzigd door JeroenTheStig op 09-11-2003 09:37 ]


  • JeroenTheStig
  • Registratie: Mei 2000
  • Nu online
edit:

en weer verwar ik de editknop met de quoteknop |:(

[ Voor 93% gewijzigd door JeroenTheStig op 09-11-2003 09:35 ]

Pagina: 1