Announcement

Collapse
No announcement yet.

Problem bei Java-Applet

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem bei Java-Applet

    Hallo erstmal ,bin gerade erst bei Javaprogrammierung eingestiegen und habe auch gleich ein Problem mit einem von mir geschrieben Programm. Das Ziel des Programms war es eigentlich in dem einem TextField etwas zuschreiben dann durch Betätigung der Speicher-Button sollte es im anderen TextField erscheinen. Doch es funktioniert nicht.
    Wer kann mir ein paar Tips geben? Vielen Dank im voraus.

    <br>import java.awt.*;</br>

    <br>public class Speicher extends java.applet.Applet {
    <br> Button sp,lo;
    <br> TextField engl,ubers;
    <br>public void init() {

    <br> Label endw = new Label("Eingabe");
    <br> TextField engl = new TextField (30);
    <br> Label uber = new Label("Ausgabe);
    <br> TextField ubers = new TextField(30);
    <br> Button sp = new Button (" Speichern ");
    <br> Button lo = new Button ("Hintergrund");
    <br> add(engw);
    <br> add(engl);
    <br> add(uber);
    <br> add(sp);
    <br> add(lo);
    <br> }
    <br> public boolean action(Event evt, Object arg) {
    <br> if (evt.target instanceof Button) {
    <br> if (evt.Target==sp) {
    <br> if(!engl.getText().equals("")) {
    <br> ubers.setText(engl.getText());
    <br> }
    <br> return true;
    <br> }
    <br> else if (evt.target==lo) setBackground(Color.blue);
    <br> }
    <br> return false;
    <br> }
    <br>}

  • #2
    Hallo!<p>
    Wenn ich das Problem richtig erkannt habe, dann ist die if-Abfrage
    falsch.<br>
    Im Code:<br>
    if (evt.target instanceof Button)<br>
    {
    if (evt.Target==sp) { ....<br>
    willst Du wissen, ob der "Speichern"-Button gedrückt wurde. Hierfür
    müßtest Du aber die Abfrage (anstelle von if (evt.Target==sp))<br>
    <CENTER><b>if (sp.getLabel().equals(arg) {</b></CENTER><br>
    starten. Hierbei ist "arg" der Object-Parameter!<p>
    Gruß<br>
    Michae

    Comment


    • #3
      Hallo vielen Dank für deine schnelle Antwort habe es geändert, leider geht es immer noch nnicht kann es sein das ich noch irgendwas wichtiges vergessen habe.

      <br>Gruß
      <br>Diete

      Comment


      • #4
        Hallo Dieter!<br><p>
        Ich habe mir Dein Programm mal etwas genauer angeschaut. Da waren noch ein paar andere
        Bugs drin! Da ich nicht weiß, mit welcher IDE Du arbeitest, musst Du auf die Schreibweise
        achten! Weiterhin hast Du in der INIT()-Methode die Felder engl, uebers, sp und lo
        als lokale Variablen innerhalb einer Methode neu definiert. Das ist in Java möglich!<br>
        Was passiert da bzw. was passiert nicht! Dein Ziel war es, den Feldern in der INIT()-
        Methode einen bestimmten Wert zu zuweisen. Was Du aber gemacht hast, war den lokalen
        Variablen mit dem gleichen Namen einen Wert zu zuweisen und somit waren die Felder
        immer null! Hier Deine Klasse, wie sie funktioniern müßte! Schaue sie Dir genau an,
        da noch ein paar andere Bugs entfernt wurden (die meisten Tippfehler und das Hinzu-
        fügen des TextField ubers wurde z.B. vergessen!<p>
        Viel Spaß noch mit Java!<p>
        Michael

        import java.awt.*;

        public class Speicher extends java.applet.Applet
        {
        Button sp, lo;
        TextField engl, ubers;

        public boolean action(Event evt, Object arg)
        {
        if (evt.target instanceof Button)
        {
        if (evt.target == sp) //Target wird "klein" geschrieben: target
        {
        if (!engl.getText().equals(""))
        {
        ubers.setText(engl.getText());
        }
        return true;
        }
        else
        if (evt.target == lo)
        setBackground(Color.blue);
        }
        return false;
        }

        public void init()
        {
        Label endw = new Label("Eingabe");
        engl = new TextField(30);
        Label uber = new Label("Ausgabe"); //Hochkomma für Textende fehlt.
        ubers = new TextField(30);
        sp = new Button (" Speichern ");
        lo = new Button (" Hintergrund ");
        add(endw); //heißt endw nicht engw.
        add(engl);
        add(uber);
        add(ubers); //Fehlende Komponente hinzufügen.
        add(sp);
        add(lo);

        }

        Comment


        • #5
          Hallo Michael,
          danke das du dir nochmal mein Programm angeschaut hast, alleine wäre ich darauf nie gekommen, obwohl es logisch ist. Na ja man muss halt erst immer mit der Nase drauf gestossen werden.
          Also nochmals vielen Dank und ein schönes Wochenende wünsch ich dir!
          Diete

          Comment

          Working...
          X