Chrischaaan: Mal gehts,mal nicht...

Hallo

ich hab mit jetzt folgende passwortabfrage erstellt.
problemmal kommt nach der richtigen eingabe aller daten die textarea,mal erscheint sie nicht.
keine ahnung warum.woran kanns liegen??

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

public class Applet1 extends Applet
{
/** Steuerelemente für PW Eingabe definieren */
 Label lbl_info = new Label("                                                  ");
 Label lbl_passwort = new Label("                    Passworteingabe                    ");
 Label lbl_nutzername = new Label("     Name :");
 Label lbl_nutzerpw = new Label("Passwort :");
 TextField txt_nutzername = new TextField();
 TextField txt_nutzerpw = new TextField();
 Button cmd_Ok = new Button("Ok");
 ButtonListener kontrolle = new ButtonListener();

/** Steuerelemente für Inhalt definieren */
 TextArea txt_MAKInfo = new TextArea(15, 35);

/** Button Listener und Passwortkontrolle */
 class ButtonListener implements ActionListener
  {
  public void actionPerformed(ActionEvent e)
  {
   String passwort = txt_nutzerpw.getText();
   String loginname = txt_nutzername.getText();

if("MAK".equals(loginname))
    {
     if("geheim".equals(passwort))
      {
       lbl_info.setVisible(false);
       lbl_passwort.setVisible(false);
       lbl_nutzername.setVisible(false);
       lbl_nutzerpw.setVisible(false);
       txt_nutzername.setVisible(false);
       txt_nutzerpw.setVisible(false);
       cmd_Ok.setVisible(false);

txt_MAKInfo.setVisible(true);
       txt_MAKInfo.setText("TEXT");
       txt_MAKInfo.setEditable(false);
      }
     else
      {
       lbl_info.setText("Loginname oder Passwort falsch!");
      }
    }
   else
    {
     lbl_info.setText("Loginname oder Passwort falsch!");
    }
  }
 }

/** Layout und Steuerelemente Initialisieren */
 public void init()
 {
  //Applet1.setBackground(Color.blue);

add(txt_MAKInfo);
   txt_MAKInfo.setVisible(false);

add(lbl_passwort);

add(lbl_nutzername);
  add(txt_nutzername);
   txt_nutzername.setColumns(25);

add(lbl_nutzerpw);
  add(txt_nutzerpw);
   txt_nutzerpw.setColumns(25);

add(cmd_Ok);
   cmd_Ok.addActionListener(kontrolle);
  add(lbl_info);
 }
}

  1. Hi Christian,

    Du musst wahrscheinlich nochmal den Bildschirm updaten, ich glaube es geht mit der Funktion:

    this.repaint();

    Gruss

    Marko

    1. Hi marko

      danke!
      mach ich gleich mal.
      trotzdem find ichs jetzt komisch das das dann überhaupt manchmal funktioniert.

      bye,christian.

    2. Hallo marko

      also so ganz funktioniert das nicht.
      das rpaint() hab ich jetzt mit in den buttonlistener eingebaut und zwar soll der die if anweisungen ausführen und so und wenn halt alles richtig ist soll der die textarea sichtbar machen,den text reinschreiben und dann editable(false) und dann soll ers neu zeichenen.klappt ja auch manchmal aber halt nicht immer.aber ich hate das gefühl es klappt etwas öfter wie erst...

      hab ich die repaint methode richtig eingebaut?

      bye,christian.

      1. hi,

        also so ganz funktioniert das nicht.

        Ich hab mir mal exakt das, was du gepostet hast, kompiliert. Bei mir kommt _überhaupt keine_ Textarea zur Anzeige, und bei fehlerhafter Eingabe von Paßwort oder username wird der Anzeigetext mitten im Wort "falsch" abgeschnitten.
        Ich werd mir das mal gründlich heute abend anschauen, nur eins gleich als Anmerkung: dein buttonlistener muß nicht unbedingt in eine neue Klasse. Das stört eigentlich nur. Mach eine Methode draus und laß ihn im Applet selbst drin. Und gib dem Teil einen anderen Namen, "Applet1" kann bisweilen irreführend sein.

        das rpaint() hab ich jetzt mit in den buttonlistener eingebaut

        repaint() halte ich nicht für zwingend notwendig bei deinem Applet. Du hast ja sonst nix, was dein Applet zu zeichnen hat. Wenn du ein Applet baust, das viele Linien in verschiedenen Farben zeichnen soll und dafür paint() benutzt, ist repaint() sinnvoll, aber du hast bisher keine solchen Zeichenelemente drin.

        Ich habe den gesamten Sinn deiner Konstruktion noch nicht verstanden. Normalerweise benutzt man Paßwortabfragen, wenn der user nur mit seinen Daten irgendwohin kommen darf. Bei dir gibts nur eine (leere?) Textarea. Jaja, ich verstehe schon, das ist erstmal nen "dummy", um nachzuschauen, ob das überhaupt funktioniert. Aber welches Ziel verfolgst du dann am Ende damit?

        Grüße aus Berlin

        Christoph S.

        1. hi

          wenn du die richtige appletgröße nimmst wird der text auch nicht abgeschnitten.

          geh mal auf folgende seite:

          http://home.t-online.de/home/helbig-venusberg/mitarbeiter/mitarbeiter_login.html

          da gibt es die etwas erweiterte version.

          und wie gesagt, das Textfeld kommt schon manchmal...

        2. Hi

          ich hab deine zweite frage noch nicht beantwortet.
          also: wenn ich den nutzer nach passworteingabe weiterleiten würde könnte man sich die adresse der seite mit dem geschützen inhalt aus dem verlauf rausholen.
          so kommt man nur zu dem applet und muß immer das passwort eingeben.
          natürlich bekommt man das passwort auch aus der kompillierten klasse raus aber aber das werd ich noch ändern.
          so das das passwort aus einer datei geladen wird die irgendwo anders liegt und wo dann ein verschlüsseltes passwort drin steht...

          bye,christian.