D
Duden
Gast
Also ich bin ganz neu in die Java programmierung reingekommen und bin nun auf ein Problem gestoßen was ich nicht lösen kann:
Also ich habe 2 Klassen:
Klasse1:
Klasse2:
Ich will bezwecken dass wenn ein Passwort in dem Fenster von Klasse 2 eingegeben wird, sich das Passwortfenster schließt und dann das Klasse1Fenster mit dem Hauptprogramm öffnet. Das Problem hier ist jetzt, dass sich Klasse1 direkt passwortrichtig3 = 0 zieht und nicht das berechnete passwortrichtig welches ja 10 ergeben würde, also es nimmt den vorgegebenen wert und nicht das endergebnis wenn das richtige passwort eingegeben wurde. Hätte jemand eine Idee wie ich das Problem lösen könnte ?
Also ich habe 2 Klassen:
Klasse1:
Java:
//.................
public static void main(String args[]) {
int erstmaldaspasswort = 10;
int passwortrichtig = 1;
try{ //PASSWORT
if( erstmaldaspasswort > 0 )
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new Passwort().setVisible(true);
}
});
}}
catch ( Exception ex ){
System.out.println("Error");
}
try{ //HAUPT
Passwort p = new Passwort();
int passwortrichtig2 = p.getPasswortrichtig2();
if( passwortrichtig > 5 || passwortrichtig2 > 5 )
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new Haupt().setVisible(true);
}
});
}}
catch ( Exception ex ){
System.out.println("Error");
}
}
Klasse2:
Java:
class Passwort extends JFrame implements ActionListener {
JButton start = new JButton("OK");
JButton beenden = new JButton("Exit");
JTextField outMeldung = new JTextField();
JPasswordField inPw = new JPasswordField();
long millisToWait = 1000; //Zeit zum warten || 1000=1sec.
double pw;
double pw2;
private int zehn = 10;
private int passwortrichtig3 = 0;
public Passwort()
{
this.initWindow();
this.setResizable( false );
this.setTitle("Kreis- und Kugelberechnung");
this.setSize( 300, 225);
this.getContentPane().setLayout(null);
this.setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
this.setLocale( Locale.GERMANY );
this.setLocation( 400, 400 );
this.getContentPane().add( start );
this.getContentPane().add( outMeldung );
this.getContentPane().add( inPw );
this.getContentPane().add( beenden );
}
public void initWindow()
{
outMeldung.setHorizontalAlignment(JTextField.CENTER);
outMeldung.setEditable( false );
pw = 12345;
outMeldung.setBounds(25,25,250,25);
inPw.setBounds(25,75,250,25);
start.setBounds(65,125,65,25);
beenden.setBounds(165,125,65,25);
outMeldung.setText("Geben Sie das Passwort ein:");
start.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
String beliebiegezahl = inPw.getText();
Double z = new Double(beliebiegezahl);
double pw2= z.doubleValue();
if( pw2 == pw ) {
long millis = System.currentTimeMillis();
while((System.currentTimeMillis() - millis) < millisToWait) {}
passwortrichtig3 = passwortrichtig3 + zehn;
Passwort.this.dispose();
}
else
{
inPw.setText( "" );
outMeldung.setText("Versuchen Sie es erneut!");
}
}
});
beenden.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
beenden();
}
});
this.pack();
}
public void beenden()
{
System.exit(0);
}
public int getPasswortrichtig2()
{
int passwortrichtig2 = passwortrichtig3;
return passwortrichtig2;
}
public void actionPerformed(ActionEvent object) {}
}
Ich will bezwecken dass wenn ein Passwort in dem Fenster von Klasse 2 eingegeben wird, sich das Passwortfenster schließt und dann das Klasse1Fenster mit dem Hauptprogramm öffnet. Das Problem hier ist jetzt, dass sich Klasse1 direkt passwortrichtig3 = 0 zieht und nicht das berechnete passwortrichtig welches ja 10 ergeben würde, also es nimmt den vorgegebenen wert und nicht das endergebnis wenn das richtige passwort eingegeben wurde. Hätte jemand eine Idee wie ich das Problem lösen könnte ?