Avatar billede ihtezaz Praktikant
15. april 2004 - 15:31 Der er 6 kommentarer og
1 løsning

Eventhandler trigges 2 gange, når jeg åbner en frame 2 gang.

Hej

Når jeg åbner opretSalgPVindue første gang bliver ordreactionPerformed eventhandleren udført korrekt og kun 1 gang hvis man klikker på knappen 1 gang. Problemmet ligger i, at når jeg lukker vinduet ned og kommet til main vinduet, og senere igen åbner opretSalgPVindue og klikker på ordreBekrKnappen, udføres ordreactionPerformed eventhandleren 2 gange, selvom man kun trykkede 1 gang.

Hvad kan fejlen være. På forhån tak.

Koden:

public void opretSalgPVindue(ActionEvent e)
{

    JFrame frame = new JFrame("Salg til private");
    frame.setSize(800,700);


        frame.addWindowListener(new WindowAdapter() {
            public void windowOpened(WindowEvent event) {
              identiTexf.setText("");
              kundeTArea.setText("");
              meddelTArea.setText("");
              kundeListe.setText("");
              ordreVare.setText("");
              ordreAntal.setText("");
              ordreSerienr.setText("");
              opsumTArea.setText("");
              opsvPrisIalt4.setText("");
              opsvAntal4.setText("");
              opsvMoms.setText("");
             
              antalIalt =0;
              samIalt =0f;
              count =0;               
               
          }});

           
    identiLab.setText("Tlf");
    identiTexf.setBounds(129,61,140,29);
    identiLab.setBounds(55,69,108,15);
   
    hentKundKnap.setText("Bekræft");
    hentKundKnap.setBounds(310,61,80,29);
   
    hentKundKnap.addActionListener(new  java.awt.event.ActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
        identifactionPerformed(e);

    }                               
});   
       

ordreBekrKnap.addActionListener(new java.awt.event.ActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
       
  public void ordreactionPerformed(ActionEvent e)
{
      System.out.println("Dette skrives 2 gange, 
        selvom man kun har klikket 1 gang");
                           
});
Avatar billede _carsten Nybegynder
15. april 2004 - 16:33 #1
Som jeg ser det, ligger fejlen ikke i den klasse du har vist her - altså skal du nok søge et andet sted
Avatar billede ihtezaz Praktikant
15. april 2004 - 16:39 #2
Det der sker er, at når jeg åbner "opretSalgPVindue", 1 gang udføres alle eventhandler 1 gang, næste gang jeg åbner "opretSalgPVindue", udføres alle eventhandlerne 2 gang, 3 gang udføres alle 3 gang. osv. Jeg tror det har noget at gøre med addActionListener metoden at gøre. Det som den gemmer de antal gang jeg åbner "opretSalgPVindue" og derefter udføre alle eventhandler det antal gange. Meget mærkelig fejl.
Avatar billede _carsten Nybegynder
15. april 2004 - 17:31 #3
Hvor er denne tilknyttet:  public void ordreactionPerformed(ActionEvent e)

Og meget gerne lidt mere kode, fejlen skal findes udenfor den kode vi har set indtil videre.

Og undskyld de lidt lange svar tider, har gang i andre udendørs opgaver
Avatar billede ihtezaz Praktikant
15. april 2004 - 17:48 #4
Der er meget kode, så det vil fylde rigtig meget her. Hvad mener du med, hvor public void ordreactionPerformed(ActionEvent e) er tilknyttet.
Avatar billede ihtezaz Praktikant
15. april 2004 - 18:15 #5
Huraaaaa fandt ud af det, addActionListnerne havde den konkrette frame scope, de skulle hav applications scope, men tak for din tid Carten.
Avatar billede ihtezaz Praktikant
15. april 2004 - 18:15 #6
Lukker spørgsmålet
Avatar billede ihtezaz Praktikant
15. april 2004 - 21:43 #7
vrøvl jeg ment selfølgelig main-frame scope, og ikke applications scope
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester