# Applet aufruf einer anderen Klasse funktioniert nicht



## duddits (30. Jun 2006)

Hi,

also mein Problem besteht darin, dass ich kleines Programm[1] geschrieben habe, welches auch einwandfrei funktioniert.
Nun möchte ich dieses Programm auch als Applet[2] nutzen.

Dazu habe ich einfach wie man sieht, eine kleine Java Class-Datei geschrieben, die das andere Programm aufruft.  

Doch wenn ich dann das Applet mit Eclipse ausführe, bekomme ich die Meldung, For input string: "" doch ich kann damit nichts Anfagen aber anscheinend wir der String den ich in das Textfiled geschrieben habe nicht ausgelesen bzw. nicht richtig interprtiert.

Ich weiß allerdings nicht was ich da ejtzt machen kann?!

Ich hoffe Ihr könnt mir da weiterhelfen.
Ich bedanke mich schonmal im Voraus für Euren Einsatz.

[1]Programm:


```
/*
* Crypto.java
*
* Created on 20. Mai 2006, 17:41
* [url]http://www.kuno-kohn.de/crypto/crypto/caesar.htm[/url]
* Dieses Programm zeigt die Möglichkeiten beim ver-/entschlüsseln mit 
* einem monoalphabetischen Chiffre der einen Substitutionsalgorithmus verwendet
*/

package Krypto;

/**
*
* @author daniel
*/
import java.awt.*;
import java.awt.event.*;

public class Crypto extends Frame implements ActionListener{

/**
 * 
 */
private static final long serialVersionUID = 1L;
Label en,de,k;
TextField ecrypt,decrypt,key;
static Crypto g = new Crypto();

Button action,clear;
/** Creates a new instance of GUI */
public Crypto() {
    //main settings
    super("Crypto");
    setSize(500,350);
    setLayout(null);
    setBackground(Color.white);
    
    // field to enter the text for the encryption
    de = new Label("Enter the text you want to encrypt:");
    de.setBounds(20,20,300,40);
    add(de);
    
    decrypt = new TextField();
    decrypt.setBounds(20,70,300,40);
    add(decrypt);
    
    // button to start the encryptions
    action = new Button("encrypt");
    action.setBounds(350,70,100,40);
    action.addActionListener(this);
    add(action);
    
    // a button to clear the fields
    clear = new Button("clear");
    clear.setBounds(350,140,100,40);
    clear.addActionListener(this);
    add(clear);
    
     // button to start the decryptions
    action = new Button("decrypt");
    action.setBounds(350,210,100,40);
    action.addActionListener(this);
    add(action);
    
    // field to enter the key for encrypting the text
    k = new Label("Length for the transposition:");
    k.setBounds(20,120,300,40);
    add(k);
    
    key = new TextField();
    key.setBackground(Color.black);
    key.setForeground(Color.white);
    key.setBounds(20,160,200,40);
    add(key);
    
    // the result of the encryption
    en = new Label("Encryptet text:");
    en.setBounds(20,220,300,40);
    add(en);
    
    ecrypt = new TextField();
    ecrypt.setBounds(20,260,300,40);
    add(ecrypt);
    
    this.addWindowListener(new WindowAdapter(){
        public void windowClosing(WindowEvent e){
            System.exit(0);
        }
    });
}


// Methode für die Verschlüsselung mit dem String Parameter sold
public String encrypt (String sold) throws Exception
{
String s = sold.toLowerCase();
char character[] = {'z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y'};
           int ik = Integer.parseInt(key.getText());  // int Wert der die Zahlen-Wertigkeit vom Klartextbuchstaben festhÃ¤lt
           char c;// char Wert in dem der Klartextbuchstabe hinterlegt wird
           int ci = 0;
           StringBuffer encryptstr = new StringBuffer (s.length());
           int i = 0;
           int j = 0;
           
                while(j < s.length()){
               
               c = s.charAt(j);
               i = 0;
               if(c >= 'a' && c <= 'z'){
               for(; i < character.length ; i++){
               
                    if(character[i] == c){
                        ci = i; 
               }
                
                     }
               encryptstr.insert (j, character[(ci+ik)%26]);
               
               }else{
            	   encryptstr.insert (j, c);
            	   }
               j++;
               }


return encryptstr.toString();
}



 // Methode für die Entschlüsselung mit dem String Parameter sold
public String decrypt (String sold) throws Exception
{
String s = sold.toLowerCase();
char character[] = {'z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y'};
           int ik = Integer.parseInt(key.getText());  // int Wert der die Zahlen-Wertigkeit vom Klartextbuchstaben festhÃ¤lt
           char c;// char Wert in dem der Klartextbuchstabe hinterlegt wird
           int ci = 0;
           StringBuffer decryptstr = new StringBuffer (s.length());
           int i = 0;
           int j = 0;
                while(j < s.length()){
               
               c = s.charAt(j);
               i = 0;
               if(c >= 'a' && c <= 'z'){
               for(; i < character.length ; i++){
               
                    if(character[i] == c){
                        ci = i; 
               }
                
                     }
               decryptstr.insert (j, character[(ci-ik+26)%26]);
               
               }else{
            	   decryptstr.insert (j, c);
        	   }
           j++;}

return decryptstr.toString();
}

public void actionPerformed(ActionEvent ae){
    String asave = ae.getActionCommand();
    if(asave.equals("encrypt")){
        try{
        String sold = decrypt.getText();
        String snew = g.encrypt(sold);
        ecrypt.setText(snew);
        }catch(Exception e){
            System.err.println(e.getMessage());
        }
    }else if(asave.equals("clear")){
        ecrypt.setText("");
        decrypt.setText("");
        key.setText("");
    }else if(asave.equals("decrypt")){
        try
        {
         String sold = ecrypt.getText().toLowerCase();
          String snew = g.decrypt(sold);
        decrypt.setText(snew);   
        }catch(Exception e){
            System.err.println(e.getMessage());
        }
              
    
    }
}

public static void main(String args[]){
    g.setVisible(true);
}

}
```


[2] Applet:

```
package Krypto;

import java.applet.*;
public class Init extends Applet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public void init()
	  {
		Crypto c = new Crypto();
		c.setVisible(true);
	  }
}
```

mfg duddits


----------



## André Uhres (6. Jul 2006)

Tipp: "System.exit(0);" ist ungesund, besser: "dispose();"
Also ich hab zwar kein Eclipse aber im Browser funzt das tiptop.


----------



## Leroy42 (6. Jul 2006)

André Uhres hat gesagt.:
			
		

> Also ich hab zwar kein Eclipse...


Nur mal aus Neugier:

Eine andere Entwicklungsumgebung?
Oder auch ein alter Haudegen aus der Vor-Mäuseschieber-Ära?


----------



## André Uhres (7. Jul 2006)

Leroy42 hat gesagt.:
			
		

> André Uhres hat gesagt.:
> 
> 
> 
> ...


Also nach allem was ich hier im Forum über Eclipse gehört hab, hat niemand mehr das Recht zu
behaupten Eclipse sei besser als ... (ich mach lieber keine Werbung   )


----------



## duddits (7. Jul 2006)

Hi,

ok das Applet funktioert jetzt war wohl ein Fehler bei eclipse. Aber die Buttons encrypt und decrypt sheinen nicht zu funktionieren. 
Den wenn ich nun auf encrypt daraufklicke wird im "Encryptet Text:"
nichts angezeigt, es scheint als würde es doch noch nicht so ganz funktionieren, wie ist es bei euch?

Würde mich das über euer Feed back freuen.

Achso hier ist es wie ich es implementiert habe:


```
<html>
<body>
<applet code="Init.class" width="400" height="300">
</applet>
</body>
<html>
```

mfg duddits


----------



## duddits (7. Jul 2006)

Hi,


tutm ir leid fü den Doppelpost aber ich habe das Programm jetzt was abgeändert so das es keine methoden mehr gibt sondern alles wird direkt im action Performed gelöst:


```
/*
* Krypto.java
*
* Created on 20. Mai 2006, 17:41
* [url]http://www.kuno-kohn.de/crypto/crypto/caesar.htm[/url]
* Dieses Programm zeigt die Möglichkeiten beim ver-/entschlüsseln mit
* einem monoalphabetischen Chiffre der einen Substitutionsalgorithmus verwendet
*/



/**
*
* @author daniel
*/
import java.awt.*;
import java.awt.event.*;

public class Krypto extends Frame implements ActionListener{

/**
*
*/
private static final long serialVersionUID = 1L;
Label en,de,k;
TextField ecrypt,decrypt,key;
static Crypto g = new Crypto();

Button action,clear;
/** Creates a new instance of GUI */
public Crypto() {
    //main settings
    super("Crypto");
    setSize(500,350);
    setLayout(null);
    setBackground(Color.white);

    // field to enter the text for the encryption
    de = new Label("Enter the text you want to encrypt:");
    de.setBounds(20,20,300,40);
    add(de);

    decrypt = new TextField();
    decrypt.setBounds(20,70,300,40);
    add(decrypt);

    // button to start the encryptions
    action = new Button("encrypt");
    action.setBounds(350,70,100,40);
    action.addActionListener(this);
    add(action);

    // a button to clear the fields
    clear = new Button("clear");
    clear.setBounds(350,140,100,40);
    clear.addActionListener(this);
    add(clear);

     // button to start the decryptions
    action = new Button("decrypt");
    action.setBounds(350,210,100,40);
    action.addActionListener(this);
    add(action);

    // field to enter the key for encrypting the text
    k = new Label("Length for the transposition:");
    k.setBounds(20,120,300,40);
    add(k);

    key = new TextField();
    key.setBackground(Color.black);
    key.setForeground(Color.white);
    key.setBounds(20,160,200,40);
    add(key);

    // the result of the encryption
    en = new Label("Encryptet text:");
    en.setBounds(20,220,300,40);
    add(en);

    ecrypt = new TextField();
    ecrypt.setBounds(20,260,300,40);
    add(ecrypt);

    this.addWindowListener(new WindowAdapter(){
        public void windowClosing(WindowEvent e){
            System.exit(0);
        }
    });
}


public void actionPerformed(ActionEvent ae){
    String asave = ae.getActionCommand();
    if(asave.equals("encrypt")){
        try{
        String sold = decrypt.getText();
        String s = sold.toLowerCase();
		char character[] = {'z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y'};
		           int ik = Integer.parseInt(key.getText());  // int Wert der die Zahlen-Wertigkeit vom Klartextbuchstaben festhÃ¤lt
		           char c;// char Wert in dem der Klartextbuchstabe hinterlegt wird
		           int ci = 0;
		           StringBuffer encryptstr = new StringBuffer (s.length());
		           int i = 0;
		           int j = 0;

		                while(j < s.length()){

		               c = s.charAt(j);
		               i = 0;
		               if(c >= 'a' && c <= 'z'){
		               for(; i < character.length ; i++){

		                    if(character[i] == c){
		                        ci = i;
		               }

		                     }
		               encryptstr.insert (j, character[(ci+ik)%26]);

		               }else{
		                  encryptstr.insert (j, c);
		                  }
		               j++;
		               }

        ecrypt.setText(encryptstr.toString());
        }catch(Exception e){
            System.err.println(e.getMessage());
        }
    }else if(asave.equals("clear")){
        ecrypt.setText("");
        decrypt.setText("");
        key.setText("");
    }else if(asave.equals("decrypt")){
        try
        {
         String sold = ecrypt.getText().toLowerCase();
          String s = sold.toLowerCase();
		  char character[] = {'z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y'};
		             int ik = Integer.parseInt(key.getText());  // int Wert der die Zahlen-Wertigkeit vom Klartextbuchstaben festhÃ¤lt
		             char c;// char Wert in dem der Klartextbuchstabe hinterlegt wird
		             int ci = 0;
		             StringBuffer decryptstr = new StringBuffer (s.length());
		             int i = 0;
		             int j = 0;
		                  while(j < s.length()){

		                 c = s.charAt(j);
		                 i = 0;
		                 if(c >= 'a' && c <= 'z'){
		                 for(; i < character.length ; i++){

		                      if(character[i] == c){
		                          ci = i;
		                 }

		                       }
		                 decryptstr.insert (j, character[(ci-ik+26)%26]);

		                 }else{
		                    decryptstr.insert (j, c);
		                }
		             j++;}

        decrypt.setText(decryptstr.toString());
        }catch(Exception e){
            System.err.println(e.getMessage());
        }


    }
}

public static void main(String args[]){
    g.setVisible(true);
}

}
```

mfg jetzt klappts.


----------



## André Uhres (8. Jul 2006)

Versuch's mal so:

```
...
String snew = encrypt(sold);
...
String snew = decrypt(sold);
...
```


----------



## duddits (11. Jul 2006)

Hi,

@André Uhres
vielen vielen dank jetzt klappt es endlich vollkommen richtig.

mfg duddits


----------

