Avatar billede chainweb Nybegynder
06. november 2006 - 18:15 Der er 8 kommentarer og
1 løsning

Applet problem

Vi skal lave et program der kan finde afstanden mellem 2 punkter.

Vores kilde:

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

public class Afstand extends Applet implements ActionListener{
  double x1;
  double y1;
  double x2;
  double y2;
  double afstand;
  Panel tekstpanel;
  TextField tekstfelt1;
  TextField tekstfelt2;
  TextField tekstfelt3;
  TextField tekstfelt4;
  TextField tekstfelt5;
  Button knap;
 
  public void init(){
    x1 = 0;
    y1 = 0;
    x2 = 0;
    y2 = 0;
    afstand = 0;
   
    tekstpanel = new Panel();
    tekstpanel.setLayout(new GridLayout(5,1));
    tekstfelt1 = new TextField(30);
    tekstfelt1.setText("Indtast x1 værdi her");
    tekstpanel.add(tekstfelt1);
    tekstfelt2 = new TextField(30);
    tekstfelt2.setText("Indtast y1 værdi her");
    tekstpanel.add(tekstfelt2);
    tekstfelt3 = new TextField(30);
    tekstfelt3.setText("Indtast x2 værdi her");
    tekstpanel.add(tekstfelt3);
    tekstfelt4 = new TextField(30);
    tekstfelt4.setText("Indtast y2 værdi her");
    tekstpanel.add(tekstfelt4);
    tekstfelt5 = new TextField(30);
    tekstfelt5.setText("Afstand: ");
    tekstpanel.add(tekstfelt5);
    add(tekstfelter);
    knap = new Button("Beregn");
    knap.addActionListener(this);
    add(knap);
  }
 
  public void actionPerformed(ActionEvent e){
    Object obj = e.getSource();
    if (obj == knap){
      try {
        x1 = Double.parseDouble(tekstfelt1.getText());
        y1 = Double.parseDouble(tekstfelt2.getText());
        x2 = Double.parseDouble(tekstfelt3.getText());
        y2 = Double.parseDouble(tekstfelt4.getText());
        afstand = ((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
        afstand = Math.sqrt(afstand);
        tekstfelt5.setText("Afstand: "+ afstand);
      } catch (NumberFormatException n) {
        tekstfelt1.setText("Indtast x1 værdi her");
        tekstfelt2.setText("Indtast y1 værdi her");
        tekstfelt3.setText("Indtast x2 værdi her");
        tekstfelt4.setText("Indtast y2 værdi her");
        tekstfelt5.setText("Afstand: ");
      }
    }
  }
}

-----------------------------------------

Fejlen:

1 error found:
File: C:\Documents and Settings\bLAZ3R\Dokumenter\Skole\DATALOGI\Afstand.java  [line: 43]
Error: cannot find symbol
symbol  : variable tekstfelter
location: class Afstand


-----------------------------------

Kan i hjælpe os?

På forhånd tak
Avatar billede chainweb Nybegynder
06. november 2006 - 18:16 #1
linje 43 = add(tekstfelter);
Avatar billede tiller3 Nybegynder
06. november 2006 - 18:28 #2
Har du proevet rent faktisk at laese fejlmeddelsen?

Den siger
Error: cannot find symbol
symbol  : variable tekstfelter <-------SE! den kan ikke finde symbolet tekstfelter

Du har ikke defineret hvad tekstfelter er.
Avatar billede chainweb Nybegynder
06. november 2006 - 18:39 #3
Hvordan skal vi definere det og hvor henne?
Avatar billede hacked Nybegynder
06. november 2006 - 22:55 #4
Du kan oprette tekstfelter som en instansvariabel eller i den metode hvor den bliver brugt. Du skal selv specificere typen af objektet. Du instantiere et objekt med operatøren new.
fx.
Object obj = new Object();

Istedet for at oprette et nyt objekt tror jeg du istedet skal gøre følgende:
Jeg tror det er din variabel tekstpanel der skal med som parameter når add-metoden bliver kaldt.

add(tekstpanel);
Avatar billede winners79 Nybegynder
06. november 2006 - 23:39 #5
linje 43 = add(tekstfelter); <-- betyder jo i skal bruge add på alle jeres tekstfelter:

add(tekstfelt1);
add(tekstfelt2);
add(tekstfelt3);
add(tekstfelt4);
add(tekstfelt5);

og bare sæt dem ind istedet for add(tekstfelter);
Avatar billede hacked Nybegynder
06. november 2006 - 23:47 #6
Tror nærmere det er panelet "tekstpanel" der skal tilføjes efter som tekstfelt1,tekstfelt2,..... ligger på panelet ;)
Avatar billede winners79 Nybegynder
07. november 2006 - 00:14 #7
ja du har ret, havde jeg overset :)
Avatar billede chainweb Nybegynder
07. november 2006 - 16:50 #8
tak... hjalp.. Malkor - sender du svar, så du kan få point?
Avatar billede hacked Nybegynder
07. november 2006 - 17:37 #9
Yessir - Hermed et 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