hallo es folgt nach dem problem von gestern ein neues. ich hab den quelltext von "Passwortgeschützter Text Teil 2" umgeschrieben und vereinfacht bzw. um einiges mehr sinn gegeben, habe aber ein neues problem. die aufgabenstellung nochmal hier: haegar.fh-swf.de/Java/AufgabenWInfs/Projekte/Projekt08.pdf
Ich bekomme sowohl bei richtiger als auch falscher Masterpassworteingabe folgenden Fehler:
Starte C:\Dokumente und Einstellungen\PC\Desktop\Programmierungsprojekt\Main2.java
Exception in thread "main" java.lang.NullPointerException
at Texte.getSchluesselstring(Texte.java:26)
at Main2.main(Main2.java:30)
danke schon mal für (bitte anfängerverständliche) hilfe
santaslittlehelper
Code:
import javax.swing.*;
public class Main2{
public static void main(String[] args){
Master master=new Master(JOptionPane.showInputDialog(null, "Geben sie das Masterpasswort ein."));
int anzahlObjekte=-1, click=0, textzahl=-1;
do {
JOptionPane.showMessageDialog(null, "Erstellen sie mindestens einen Text!", "Text erstellen",2);
String a=JOptionPane.showInputDialog(null, "Wieviele Texte wollen sie verschlüsseln?");
anzahlObjekte=Integer.parseInt(a);
} while (anzahlObjekte<1 );
Texte[] text=new Texte[anzahlObjekte];
for (int i=0;i<anzahlObjekte ;i++ ) {
text[i]=new Texte(JOptionPane.showInputDialog(null, "Geben sie Text "+(i+1)+" von "+anzahlObjekte+ " ein.", "Eingabe", 2),JOptionPane.showInputDialog(null, "Geben sie einen Schlüssel ein.", "Eingabe", 2));
}
do{
do {
textzahl=(Integer.parseInt(JOptionPane.showInputDialog(null, "Geben sie die Nummer des zu entschlüsselnden Textes ein."))-1);
}while(textzahl<0||textzahl>anzahlObjekte);
String pwUser=JOptionPane.showInputDialog(null, "Geben sie das Passwort des zu entschlüsselnden Textes ein.");
String ausgabe= text[textzahl].getSchluesselstring(pwUser);
JOptionPane.showMessageDialog(null, ausgabe);
click =JOptionPane.showConfirmDialog(null, "Wenn sie einen weiteren Text abrufen wollen--> OK\nWenn nicht-->Abbrechen", "",2);
}while(click==0);
JOptionPane.showMessageDialog(null, "Das Programm wird beendet.", "Text erstellen",2);
}
}
Code:
import javax.swing.*;
public class Texte extends Main2{
private Master master;
private String text;
private String passwort;
private int versuche;
public Texte(String text, String passwort){
this.text =text;
this.passwort =passwort;
this.versuche =3;
}
public String getSchluesselstring(String pwUser){
String ausgabe="Fehler";
if(passwort.equals(pwUser)){
ausgabe=this.text;
}else{
versuche-=1;
if(versuche==0){
int masterversuche=3;boolean masterwert=false; boolean scheifenwert=false;
do{
masterwert= master.frageMaster(JOptionPane.showInputDialog(null, "Geben sie das Masterpasswort ein. Es verbleiben "+masterversuche+" Versuche" ));
if(masterwert=true){
this.passwort=JOptionPane.showInputDialog(null, "Geben sie eine neues Passwort ein.");
scheifenwert=true;masterversuche++; ausgabe="Das Passwort wurde geändert.";
}
masterversuche--;
if(masterversuche==0){
this.text=null;this.passwort=null;scheifenwert = true;
ausgabe="Der Text und wurde gelöscht";
}
}while(scheifenwert=false);
}else{
ausgabe="Das Passwort ist falsch. Sie haben noch "+versuche+ " Versuche.";
}
};
return ausgabe;
}
}
Code:
import javax.swing.*;
public class Master {
private String master;
public Master(String master){
this.master=master;
}
public boolean frageMaster(String userMaster){
boolean masterWert=false;
if(userMaster.equals(this.master)){
masterWert=true;
}
return masterWert;
}
}
Ich bekomme sowohl bei richtiger als auch falscher Masterpassworteingabe folgenden Fehler:
Starte C:\Dokumente und Einstellungen\PC\Desktop\Programmierungsprojekt\Main2.java
Exception in thread "main" java.lang.NullPointerException
at Texte.getSchluesselstring(Texte.java:26)
at Main2.main(Main2.java:30)
danke schon mal für (bitte anfängerverständliche) hilfe
santaslittlehelper