Avatar billede Bennysørensen Praktikant
28. juli 2003 - 20:11 Der er 14 kommentarer og
1 løsning

Oversigt over errors, Forte

Jeg tæsker rundt i de samme fejl hele tiden, og kunn godt bruge en egentlig oversigt over hvad der egentligt er hvad. Jeg kan huske fra min erfaring med C++, at der i udviklingsmiljøet (kan ikke engang huske hvad det hed...) var en funky lille hjælp: Når man dobbeltklikkede på fejlmeddelelsen, fik man et hint til hvad der formodentligt var galt. Min oftest opståede fejl er "Cannot Resolve Symbol" i forbindelse med "new xxxxx". Jeg synes ellers at jeg har tjekket stavningen igennem masser af gange...

Er der nogen, der kender til en oversigt eller en feature i Forte, der kan hjælpe dér?
Avatar billede arne_v Ekspert
28. juli 2003 - 20:16 #1
"Cannot Resolve Symbol" fejlen plejer at være en af følgende:
  - forkert stavet klasse navn
  - manglende import
  - jar fil der mangler i classpath
Avatar billede arne_v Ekspert
28. juli 2003 - 20:19 #2
Jeg kender ikke nogen Java IDE der kan komme med nogle virkeligt
gode forklaringer.
Avatar billede Bennysørensen Praktikant
28. juli 2003 - 20:20 #3
jar fil der mangler i classpath....?
Avatar billede arne_v Ekspert
28. juli 2003 - 20:22 #4
Hvis du bruger en klasse som ikke er en del af selce Java men som er en
del af et bibliotek som du har downloadet, så skal biblioteket (jar-filen)
puttes ind i classpath for at man kan bruge klasserne i det.
Avatar billede Bennysørensen Praktikant
28. juli 2003 - 20:25 #5
Det gør jeg ikke.

Suk...her kommer hele koden alligevel...

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

/**
*
* @author  schroeder
* @version
*/
public class CyberPetApplet extends Applet implements ActionListener
{
    private CyberPet pet1;
    private Label nameLabel;
    private TextField stateField;
    private Button eatButton, sleepButton;
       
    public void init()
    {
        pet1 = new CyberPet("Socrates");
        nameLabel = new Label("Davs, jeg hedder "+ pet1.getName() + ", og lige nu er jeg ved at ");
        stateField = new TextField(12);
        eatButton = new Button("spise.");
        eatButton.addActionListener(this);
        sleepButton = new Button("sove.");
        sleepButton.addActionListener(this);
       
        stateField.setText(pet1.getState());
        stateField.setEditable(false);
        add(nameLabel);
        add(stateField);
        add(eatButton);
        add(sleepButton);
        setSize(300,150);
    }      //init()
   
       
    public void actionPerformed( ActionEvent e)
    {
        if (e.getSource() == eatButton)
            pet1.eat();
        else if (e.getSource() == sleepButton)
            pet1.sleep();
        stateField.setText(pet1.getState());
    }
}


....og constructoren...

        public String CyberPet(String str)
        {
            name = str;
            return name;
        }
Avatar billede arne_v Ekspert
28. juli 2003 - 20:28 #6
Hov !

En constructur returnerer ikke noget !

        public CyberPet(String str)
        {
            name = str;
        }
Avatar billede arne_v Ekspert
28. juli 2003 - 20:29 #7
De symbol den ikke kan finde er så constructoren.
Avatar billede Bennysørensen Praktikant
28. juli 2003 - 20:30 #8
Fair nok, dér dummede jeg mig lidt.

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

...nu får jeg så denneher i stedet...
Avatar billede arne_v Ekspert
28. juli 2003 - 20:32 #9
Forsøger du at køre den som applikation ?

Det er jo en applet og skal køres som sådan !
Avatar billede Bennysørensen Praktikant
28. juli 2003 - 20:34 #10
Jeg gik rundt og troede at det var nok at kalde den med init(): Det har virket med de andre kodeeksempler, jeg har tastet ind fra min bog...jeg compilerer den og kører den som de andre, jeg har lavet. Tastet.
Avatar billede arne_v Ekspert
28. juli 2003 - 20:39 #11
Er de andre også applets ?

Applets er specielle !
Avatar billede Bennysørensen Praktikant
28. juli 2003 - 20:46 #12
Ja, det husker jeg...det er sgu også kun fordi kapitlet om Arv og polymorfi bruger dét her eksempel at jeg overhovedet gider at lave applets..

De andre applets er så vidt jeg husker blevet oprettet på samme måde, også som  xxxx.java. Ved kompileringen er der så blevet lavet denneher .class fil af sig selv, og html-delen af appletten er autogenereret.
Avatar billede Bennysørensen Praktikant
28. juli 2003 - 20:50 #13
...du kan lige fåe et kodeeksempel...

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class toggle extends Applet implements ActionListener
{
    private Button toggle;      //fra java.awt.*;

    /** Initialization method that will be called after the applet is loaded
    *  into the browser.
    */
    public void init ()
    {
        toggle = new Button ("Hund");
        toggle.addActionListener(this);
        add(toggle);
    }      //init()

    public void actionPerformed(ActionEvent e)
    {
        String str = toggle.getLabel();        //get the button's label
        if (str.equals("Kat"))
            toggle.setLabel("Hund");
        else
            toggle.setLabel("Kat");
    }      //actionperformed()
}
Avatar billede arne_v Ekspert
28. juli 2003 - 21:17 #14
Hm.

Jeg legede lige lidt med Sun ONE Studio (som Forte hedder nu om dage).

Og det ser ud som om at den beslutter om noget skal køre som
application elelr applet baseret på den wizard man bruger når man
laver klassen.

Hvis du har valgt forlert der, så kan det godt være at Forte ikke rigtigt vil.

Men så kan du da åbne den i din browser.

Det er jo det som er hele formålet med applets !

Lave en HTML side der kalder din applet og så åben den
HTML side med din browser.
Avatar billede Bennysørensen Praktikant
28. juli 2003 - 21:38 #15
Well, det ER mig, der ikke bruger Forte tit nok: Det er ganske rigtigt Wizard'en, der ikke blev brugt rigtigt. Hmmm...endnu en sejr for grundigheden. Fordømt...! :o)...og tarveligt at det hedder .java ligegyldigt hvad man laver...

Jeg er vist på vej ind i dén onde cirkel, der hedder "Jo mere man går i stå, jo sværere er det at vende tilbage til tastaturet, og desto mere sværere er det at huske hvad man egentligt lærte sidste gang" :o)

Tak for hjælpen.
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