Avatar billede erk Nybegynder
17. august 2001 - 18:00 Der er 1 løsning

Simpel Applet

Jeg prøver at lave en simpel Applet hvor folk kan skrive en kommentar til mig, som gemmes i en tekst og se de kommentarer der er skrevet.

Koden er som følger:
-------------------------------------------

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;
//import java.io.FilePermission.*;

public class Comments extends Applet {

  TextArea commentIn, commentOut;
  Button send;
  String fetchedText = \"\";
  String newText = \"\";
  String errorText = \"\";
  String filnavn = \"HPcommnt.txt\"; 
  //FilePermission fp = null;
 
  public void init() {
      //fp = new FilePermission(\"*\", \"read,write\");
      setLayout(null);//for at setBound virker...
      send = new Button(\"Say it to ERK\");
      send.setBounds(10,10,80,30); //send.setBounds(x,y,width,height);
      add(send);
      commentIn = new TextArea(\"\",200,100);
      commentIn.setEditable(true);
      commentIn.setBounds(20,50,200,50);
      add(commentIn);
      commentOut = new TextArea(fetchedText,20,40);
      commentOut.setEditable(true);
      commentOut.setBounds(20,100,300,200);
      add(commentOut);
      fetchText();
      commentOut.setText(fetchedText);
  }
 
  public void actionPerformed(ActionEvent ae) {
      String str = ae.getActionCommand();
      if(str.equals(\"Say it to ERK\")) {
        newText = fetchedText + commentIn.getText();
        saveText(newText);
      }
      else {
        errorText = \"ERK: \\\"FUGH\\\" - der gik noget galt... sorry :o]\";
      }
      repaint();
  }
 
  private void fetchText() {
      String lineToAdd = null;
      try {
        BufferedReader inFile =
        new BufferedReader(new FileReader(filnavn));
        try {
            lineToAdd = inFile.readLine();
            while(lineToAdd != null) {
              fetchedText += lineToAdd;
              lineToAdd = inFile.readLine();
            } 
        }
        catch(IOException ioe) {
        errorText = \"ERK: \\\"FUGH\\\" - der gik noget galt... sorry :o]\";
        } 
      }
      catch(FileNotFoundException fnfe) {
        errorText = \"ERK: FUGH!! -> \" + fnfe;
      }
      fetchedText = \"Teeeeest...\";
  }
 
  private void saveText(String in) {
      try {
        PrintWriter outFile =
        new PrintWriter(new FileWriter(filnavn));
        outFile.println(\"TEST\"+newText);
        outFile.close();
      }
      catch(IOException e){
        errorText = \"ERK: \\\"FUGH\\\" - der gik noget galt... sorry :o]\";
      }
  }

  public void paint(Graphics g) {
      g.drawString(errorText,0,0);
  }

}
---------------------------------------------------

Jeg får en masse mærkelige fejl - må en applet ikke skrive til en fil eller læse fra den??
Enten kan appletten ikke finde FilePermission-klasse-bilblioteket, eller også får jeg forskellige security-fejl...
Avatar billede logical Nybegynder
17. august 2001 - 19:54 #1
En applet kører hos klienten, og den fil du åbner i metoden saveText er en fil, som din applet forsøger at åbne host klienten.

Det er ikke umiddelbart tilladt uden at signe din applet (Og det giver heller ikke mening at gemme din tekst hos klienten). 

En applet er slet ikke i nærheden af serversiden, så det er ikke lige sådan du ville save din tekst. Der ville du typisk have et CGI program, en Servlet eller en JSP fil eller tilsvarende på din webserver, som kunne modtage teksten.
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