Avatar billede appel Novice
18. oktober 2002 - 23:48 Der er 16 kommentarer og
1 løsning

Kan ikke bruge min andre klasser

Jeg har tre klasser i hver sin .java fil, kaldet Reminder.java, NewDeal.java og SaveCalendar.java. Mit problem er at jeg ikke kan oprette objekter af de andre klasser i min Reminder.java fil, idet jeg fx får:

cannot resolve symbol
symbol  : constructor NewDeal  (Reminder)
location: class NewDeal
            newDeal.addActionListener(new NewDeal(this));

Jeg er ret sikker på det er en af de lette så bare skyd løs!
Avatar billede frosig Nybegynder
18. oktober 2002 - 23:50 #1
Har du en konstruktør, der modtager et Reminder-objekt som parameter?
Avatar billede frosig Nybegynder
18. oktober 2002 - 23:51 #2
og har du kompileret NewDeal-klassen?
Avatar billede appel Novice
18. oktober 2002 - 23:54 #3
Det er i Reminder klassen at det hele (indtil videre foregår):

private JMenuBar createMenuBar(){
            JMenuBar MenuBar = new JMenuBar();
            JMenu menuCalendar = new JMenu("Calendar");
            JMenuItem newDeal = new JMenuItem("New Deal");
            JMenuItem saveCalendar = new JMenuItem("Save Calendar");
GIVER FEJL!!    newDeal.addActionListener(new NewDeal(this));
GIVER FEJL!!    saveDeal.addActionListener(new SaveCalendar(this));
            menuCalendar.add(newDeal);
            menuCalendar.add(saveDeal);
            MenuBar.add(menuCalendar);
            return menuBar;
    }
Avatar billede appel Novice
18. oktober 2002 - 23:56 #4
Jeg har kompileret NewDeal og SaveCalendar filerne, men burde det ikke ske automatisk når jeg kompilere Reminder.java som skal bruge disse klasser?

NewDeal.java er indtil videre bare en dummy klasse som ser sådan ud:

class NewDeal implements ActionListener{
   
    /*public void NewDeal(){
        System.out.println("New Deal oprettet");
    }*/
    public void actionPerformed(ActionEvent e) {
        System.out.println("New Deal");
    }
}
Avatar billede frosig Nybegynder
18. oktober 2002 - 23:56 #5
Hvordan ser dine konstruktører ud i klasserne NewDeal og SaveCalendar?
Avatar billede erikjacobsen Ekspert
18. oktober 2002 - 23:56 #6
Men hvordan ser dine konstruktører ud i fx NewDeal ?
Avatar billede erikjacobsen Ekspert
18. oktober 2002 - 23:57 #7
:)

Så kan du jo ikke kalde denne konstruktør

new NewDeal(this)
Avatar billede frosig Nybegynder
18. oktober 2002 - 23:59 #8
Du skal have en konstruktør, som ser sådan her ud...

public NewDeal (Reminder reminder) {

}

i NewDeal-klassen. Det samme gælder SaveCalendar-klassen
Avatar billede erikjacobsen Ekspert
19. oktober 2002 - 00:00 #9
Eller kalde den som

new NewDeal()
Avatar billede appel Novice
19. oktober 2002 - 00:04 #10
Hehe ja ok, jeg kan godt se i har en pointe ;-) (klokken er vist ved at være mange ...)
Avatar billede appel Novice
19. oktober 2002 - 00:05 #11
Jeg tror det var frosig der var først på banen med det rigtige svar, så hvis du vil have nogen point så ...
Avatar billede frosig Nybegynder
19. oktober 2002 - 00:06 #12
Det vil jeg da :-)
Avatar billede appel Novice
19. oktober 2002 - 00:14 #13
men nu får jeg en anden fejl ...

Exception in thread "main" java.lang.NoSuchMethodError: main

Den forstår jeg ikke helt... jeg har jo en main metode ?!
Avatar billede frosig Nybegynder
19. oktober 2002 - 00:17 #14
Hvordan ser den ud?
Avatar billede appel Novice
19. oktober 2002 - 00:19 #15
public void main(String[] args) {
        JDesktopPane pane;
          JFrame frame = new JFrame("NN");

        //Make the big window be indented 50 pixels from each edge
        //of the screen.
          int inset = 50;
          Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
          frame.setBounds(inset, inset,
                    screenSize.width - inset*2,
                    screenSize.height-inset*2);

        //Quit this app when the big window closes.
      frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
pane  = new JDesktopPane(); //a specialized layered pane
    // createFrame(); //Create first window
        frame.setContentPane(pane);
        frame.setJMenuBar(createMenuBar());
        //Make dragging faster:
        pane.putClientProperty("JDesktopPane.dragMode", "outline");
    frame.setVisible(true);
    }
Avatar billede frosig Nybegynder
19. oktober 2002 - 00:20 #16
Den skal, så vidt jeg ved, være statisk, altså public static void main (String[] args)
Avatar billede appel Novice
19. oktober 2002 - 00:23 #17
Damn jeg troede sgu ikke det havde noget at sige !

Men det havde det ;-)

Tusind tak, nu kan jeg snart ligge mig til at sove ...
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

IT-JOB