Avatar billede sy22 Nybegynder
12. juni 2002 - 12:52 Der er 10 kommentarer og
1 løsning

Fejl ved nedarvning

Hej Folket!

efter at have nedarvning fra en af mine klasser til en anden får jeg flg. fejl:

...cannot resolve symbol....public Gui(){
                                        ^

Hvis Jeg fjerne nedarvning fra Director til Gui, er der ingen problemer.

Mine to klasser ser således ud:

import java.util.*;
import dk.au.imv.jabber.*;
public class Director implements IJabber {
    public Log nyLog;
    public JabberServer js;
    public JID you, me;
    public Vector friends;
    public boolean res1, res2;

public Director(Log temp){
        nyLog = temp;
    JabberServer js = new JabberServer(this);
    JID me = new JID();
    JID you = new JID();
    Vector friends = new Vector();
        me.setUsername(nyLog.name);
        me.setServer("ishtar.imv.au.dk");
        me.setPassword(nyLog.kodeOrd);
        System.out.println("JID: " + me);
        System.out.println(me);
        js.attachUser(me);
        js.setStatus("available");
        boolean res1 = js.createNewAccount();
        boolean res2 = js.logOn();
       
        js.presenceSubscribe(you);
        js.getRoster();
        if (res2)
        System.out.println("Logon succeded");
        opret();
        }
       
    public void msgReceived(String from, String subject, String body) {
        //System.out.println("RECI:" + body);
    }
    public void rosterChange(Vector v) {
        //System.out.println("VECTOR:" + v);
    }
    public void connectionClosed() {
        //System.out.println("conn closed");
    }
    public void opret(){
        Gui nygui = new Gui();
    }
    }










import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class Gui extends Director implements ActionListener {

    private JFrame frame;
    private JButton statusButton, brugerButton;
    private JTextField nyven;
    public Log nyLog2;
    public boolean farve;
    public String venavn;

    public Gui(){
      // nyLog2 = temp2;
      frame = new JFrame();
      statusButton = new JButton();
      brugerButton = new JButton();
      nyven = new JTextField();
      farve = true;
    statusButton.setText(nyLog.name/*nyLog2.name*/);
      brugerButton.setText("Tilføj Bruger");
      statusButton.addActionListener(this);
      brugerButton.addActionListener(this);
      statusButton.setBackground(Color.green);
      statusButton.setBounds(120,10,100,50);
      brugerButton.setBounds(600,10,100,50);
      frame.setBounds(0,0,800,600);
      nyven.setBounds(600,80,100,20);
      frame.getContentPane().add(statusButton);
      frame.getContentPane().add(brugerButton);
      frame.getContentPane().add(nyven);
      frame.getContentPane().setLayout(null);
      frame.show();
              frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
    public void hentVenavn(){
        venavn = nyven.getText();
    }
      public void actionPerformed (ActionEvent e) {
        if (e.getSource() == statusButton){
        if(farve == true){
            statusButton.setBackground(Color.green);
        }
        else if(farve == false){
                statusButton.setBackground(Color.red);
        }
        if(farve == false){
            farve = true;
        }
        else if(farve == true){
                farve = false;
        }
       
        } 
        if (e.getSource() == brugerButton){
        hentVenavn();
        you.setUsername(venavn);
        you.setServer("ishtar.imv.au.dk");
        js.presenceSubscribe(you);
        js.getRoster();
        rosterChange(friends);
    }
    }
   
}


Takker for hjælp

Avatar billede carstenknudsen Nybegynder
12. juni 2002 - 13:09 #1
Kompilerer du med en rigtig class path
som i:
javac -classpath . Gui.java Director.java
Ellers smid din kompileringskommando op.
Gui har helt klart en tom konstruktor
så det lyder som om classpath'en ikker
er rigtig.
Avatar billede sy22 Nybegynder
12. juni 2002 - 13:16 #2
jeg kompilerer fra kommandeprompten med "javac Gui.java"
jeg er næsten 100% sikker på at min CLASSPATH er sat rigtigt op
Avatar billede carstenknudsen Nybegynder
12. juni 2002 - 13:19 #3
Kompiler med
javac -classpath . Gui.java
Avatar billede sy22 Nybegynder
12. juni 2002 - 13:23 #4
Beklager men det resulterer i præcis samme fejl
Avatar billede carstenknudsen Nybegynder
12. juni 2002 - 13:30 #5
Gui.java og Director.java ligger i samme
direktorie hvor du kompilerer?
Læg hele fejlbeskeden op.
Avatar billede sy22 Nybegynder
12. juni 2002 - 13:38 #6
ja det gør de, og hvis jeg ikke nedarver kompilerer jeg uden problemer.

X:\Java\mpny>javac -classpath . Gui.java
Gui.java:15: cannot resolve symbol
symbol  : constructor Director  ()
location: class Director
    public Gui(/*Log temp2*/){
                            ^
Avatar billede carstenknudsen Nybegynder
12. juni 2002 - 13:53 #7
Undskyld nu kan jeg se hvad der er galt.
Den kalder implicit en tom konstruktor
Director() fordi du ikke kalder noget
med super i første linie i Gui's konstruktor.
Desværre har Director ikke en tom konstruktor.
Enten må du lave en eller kalde den
ikke tomme konstruktor som er til stede
i Director klassen. Så skulle den være på plads.
Avatar billede sy22 Nybegynder
12. juni 2002 - 14:11 #8
nu kalder jeg super(temp); i min Gui klasse, men får så denne fejlmeddelelse

X:\Java\mpny>javac Gui.java
Gui.java:17: cannot resolve symbol
symbol  : constructor Director  (java.lang.String)
location: class Director
          super(temp);
          ^
Avatar billede sy22 Nybegynder
12. juni 2002 - 14:13 #9
Beklager forkert medd. dette er den sande!

X:\Java\mpny>javac Gui.java
Gui.java:17: cannot resolve symbol
symbol  : variable temp
location: class Gui
          super(temp);
                ^
Avatar billede carstenknudsen Nybegynder
12. juni 2002 - 14:28 #10
Ja, men den kræver ikke en String men
en Log og det ved kun du hvad er.
Avatar billede sy22 Nybegynder
12. juni 2002 - 16:35 #11
nu kører det...takker!
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