2016-05-18 14 views
0

was mache ich falsch? Ich verstehe es wirklich nicht. Es sollte im Grunde genommen den Text anzeigen, den ich eingegeben habe, aber wenn das Kontrollkästchen deaktiviert ist, sollte es \n and \t erkennen und entsprechend in der Ausgabe antworten. Vielen Dank!Warum funktioniert mein Java Echo Applet nicht?

//html code is all follows 

<applet code="Echo.class" height=400 width=500></applet> 
<param name="parameter" value="Echo.class"> 
</applet> 

// this is the .java file 

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

public class Echo extends Applet 
{ 
    TextArea output; 
    TextField input; 
    Checkbox escape; 
    Button submit; 
    String s; 
    boolean bool=true; 
    String args; 



    public void init() 
    { 

     setLayout(new BorderLayout()); 

     final Applet Echo = this; 

     s = "enter some text"; 
     input = new TextField(s); 
     this.add(input,BorderLayout.SOUTH); 
     output = new TextArea(""); 
     this.add(output,BorderLayout.CENTER); 

     submit = new Button("button"); 
     this.add(submit,BorderLayout.EAST); 
     submit.addActionListener(new Listener()); 

     escape = new Checkbox("checkbox"); 
     this.add(escape, BorderLayout.EAST); 
     escape.addItemListener(new Listener()); 



    } 


    public class Listener implements ActionListener, ItemListener 

    { 
     public void actionPerformed(ActionEvent e) 

     { 
       args = this.getParameter("parameter"); 
       input.getText(); 
       output.setText(); 
      if (bool) 
      { 

       System.out.println(args.replaceAll("\\\\n", "\n").replaceAll("\\\\t","\t")); 
      } 
       else { 
        System.out.println(args); 
       } 
     } 


     public void itemStateChanged(ItemEvent ie) 
     { 

      if(!escape.getState()) 

       bool=false; 

     } 
    } 
} 
+1

Ist dies in irgendeinem Bereich mit PHP verwandt? – Thamilan

+0

1) Warum AWT verwenden? Siehe [diese Antwort] (http://stackoverflow.com/questions/6255106/java-gui-listeners-without-awt/6255978#6255978) aus vielen guten Gründen, AWT mit Komponenten zugunsten von Swing zu verlassen. 2) Warum ein Applet codieren? Wenn es aufgrund der Angabe des Lehrers geschieht, verweisen Sie bitte auf [Warum CS-Lehrer ** aufhören sollten ** Java-Applets zu unterrichten] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should -stop-teaching-Java-Applets /). .. –

+0

.. 3) Siehe [Java Plugin-Unterstützung veraltet] (http://www.gizmodo.com.au/2016/01/rest-in-hell-java-plug-in/) und [Wechsel zu einem Plugin -Free Web] (https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free). –

Antwort

1
output.setText(input.getText()); 

FYI. Applet (awt) ist eine relativ verworfene Technologie. Das neuere JApplet (Swing) hat nicht mehr so ​​große Browser-Unterstützung.

+1

* "Die neuere JApplet (Swing) hat nicht mehr so ​​große Browser-Unterstützung." * Ich würde sagen, dass als 'die ** Mehrheit ** der aktuellen Browser ** nicht ** Applets unterstützen '. Wenn die großen Hersteller von Browsern die Java-Unterstützung noch nicht entfernt haben, planen sie dies. –

+1

@AndrewThompson Danke, was ich gehört habe, aber nicht sicher war. Java WebStart/JNLP könnte eine Alternative sein? Obwohl ich einfach gehört habe, hat es andere Probleme. –

+1

* "Obwohl ich einfach gehört habe, dass es andere Probleme hat." * Es ist nicht kugelsicher (was ist das?). Die größten jüngsten Bedenken sind: 1) Das Skript des Deployment-Toolkits, das darauf angewiesen war, dass das Plug-in zur Überprüfung der Java-Version installiert wurde, ist jetzt veraltet, das Plug-in verschwindet. 2) Hinzu kommt, dass Chrome zumindest entschieden hat, dass jede Datei (einschließlich JNLP-Dateien) heruntergeladen und nicht direkt an die App weitergegeben wird. das beansprucht eine Dateizuordnung. Also die Bereitstellung einer JWS-App. ist für den Benutzer nicht so einfach wie früher. Natürlich hat Oracle niemanden außer sich selbst zu beschuldigen, ständig Sicherheitslücken zu lassen .. –