Avatar billede mpej Nybegynder
20. december 2004 - 23:52 Der er 5 kommentarer og
3 løsninger

Hvorfor virker min fileChooser ikke?

Den udskriver 'Jabbajabbahey', men åbner aldrig en filechooser!
Nogen idéer til hvad der kan være galt?


...
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JFileChooser;

import java.io.File;

public class Controller
{
...

    ActionListener browseAction;
   
   
   
    public Controller(JFrame jf)
    {
       
        frame = jf;
       
...


        browseAction = new ActionListener()
        {

                public void actionPerformed(ActionEvent e) {
                    JFileChooser fc = new JFileChooser();
                    fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
                    System.out.println("jabbajabbahey");
                    if (e.getSource() == browseAction) {

                        int returnVal = fc.showOpenDialog(fc);

                        if (returnVal == JFileChooser.APPROVE_OPTION) {
                            File file = fc.getSelectedFile();
                            file.getName();
                        }
                  }
                }
               
           
        };

        myMainMenuView.setBrowseActionListener(this.browseAction);

....

  }
   
}
Avatar billede mikkelbm Nybegynder
20. december 2004 - 23:56 #1
e.getSource() returnere det objekt som du har tilføjet din listener til.
Avatar billede mikkelbm Nybegynder
20. december 2004 - 23:57 #2
Hvis du skal åbne din JFileChooser ved tryk på en knap bliver det noget a la:

JButton open = new JButton ("Åbn");
.....

if (e.getSource() == open)
{
  //....
}
Avatar billede arne_v Ekspert
20. december 2004 - 23:57 #3
Skal

int returnVal = fc.showOpenDialog(fc);

ikke være

int returnVal = fc.showOpenDialog(frame);

?
Avatar billede snoop_one Nybegynder
21. december 2004 - 01:46 #4
prøv istedet for at skrive "jaba...." ud, at at ændre det til e.getSource() så du også for lidt mere information ud af din debug linie :-)

e.getSource() giver dig det objekt eventet fandt sted på.
Mit umiddelbare bud er, at at din e.getSource() aldrig er browseAction instansen - da du sætter den til myMainMenuView instansen da det er den der udløser eventet.
Avatar billede mpej Nybegynder
21. december 2004 - 01:57 #5
I skal alle have point, så hvis i er søde at indlægge et svar, så vil jeg uddele.
Avatar billede snoop_one Nybegynder
21. december 2004 - 02:15 #6
ok
Avatar billede arne_v Ekspert
21. december 2004 - 07:17 #7
ok
Avatar billede mikkelbm Nybegynder
21. december 2004 - 08:32 #8
svar
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