Fenster Erweiterung/Sichtbar machen

Also, das ertse getPfPinNummer1 kannst du getrost weglassen, das bringt rein gar nichts, weil du den Rückgabewert ja nicht beachtest wie dir schon x Mal im Vorhinein von anderen gesagt wurde.
Richtig ist der zweite Aufruf:

Java:
JPasswordField a = getPfPinNummer1();

Selbiges gilt für den Aufruf in Zeile 13.

Dann kommt deine If-Abbfrage (*Haare rauf*)
Es wurde dir schonmal im Vorhinein gesagt, in dem If dort vergleichst du Äpfel mit Brinen. Da ist es kein wunder, dass immer false raus kommt. Ne Brine ist nunmal kein Apfel!
karte.getPin() gibt doch wenn ich mich recht entsinne einen String zurück. Damit da überhaupt true raus kommen kann musst du ihn auch mit einem String vergleichen. Du hingegen vergleichst ihn mit deinem JPasswordField!!
Und nochmals, auch wenn dir das so ziemlcieh alle zuvor auch schon einmal gesagt haben. Hol dir von dem JPasswordField das den Inhalt. Das geht so mit der Methode getPassword(). Da die dir allerdings noch ein char[] zurückgibt musst du daraus noch einen String machen. Wie das geht bitte ich dich in der Dokumentation nachzugucken. Falls du nicht weißt wo es die gibt:

http://download.oracle.com/javase/6/docs/api/index.html

Mehr Tipps kann man dir nicht geben ohne die Aufgabe für dich zu lösen.
 
ah ok.

hab des dann so:

Code:
	private JButton getBtBestätigen() {
		if (btBestätigen == null ) {
			btBestätigen = new JButton();
			btBestätigen.setBounds(new Rectangle(190, 60, 100, 25));
			btBestätigen.setText("Bestätigen");
			btBestätigen.addActionListener(new java.awt.event.ActionListener()
			{
				public void actionPerformed(java.awt.event.ActionEvent e)
				{
					JPasswordField a = getPfPinNummer1();
					karte1.getPin();
				}
			});
			
		}
		return btBestätigen;
	}

	
	public void getPassword()
	{
		String.valueOf(a);
	}

ist des dann richtig?
 
Nein -.-

Ok, mal gaaaanz von vorne.
entscheident ist ja eig. nur der ActionListener.
Also alles was sich innerhalb der {} von public void actionPerformed abspielt.
Die erste Zeile mit
JPasswordField a = getPfPinNummer ist so weit richtig.
das karte1.getPin() macht immer noch nichts, ich weiß nicht wie oft man dir das noch sagen soll.
Also die Methode getPin() gibt dir etwas zurück, wenn du es allerdings nirgendwo rein tust verpufft das. Stell es dir vor als käme jedes mal aus der Karte die Pin raus wenn du sie schüttelst. Nun hast du die Karte in der Hand schüttelst sie aber fängst die Pin nicht auf. Dann ist die weg!
Damit das nicht passiert machst du es so wie bei getPfPinNUmmer().
Du schreibst dir einen "Behälter" davor der die Pin auffängt.

Das ist deine erste Aufgabe!
Tipp: Das was dir getPin zurück gibt ist ein String (nein, nicht die sexy Unterwäsche).
getPfPinNummer gibt ein JPasswordField zurück. Du kannst also in Zeile 11 ein wenig abgucken.

Weiter geht es. Wir machen das ganze erstmal nur so weit, dass du überprüfen kannst ob die Pin richtig oder falsch ist.

Schön und gut, wenn du das erledigt hast kommen wir zur zweiten Aufgabe:
Aus dem JPasswordField die Eingabe raus holen.
Schön und gut. In Zeile 11 hast du dir schonmal das JPasswordField geholt, darauf kannst du jetzt über die Variable a zugreifen.

Um an die Eingabe zu kommen benötigst du die Methode getPassword. Die rufst du so auf:
Java:
a.getPassword();
Das Ergebnis davon musst du natürlich auch wieder Auffangen. Wie bereits schon erwähnt gibt dir getPassword ein char[].

Deine zweite Aufgabe:
Dieses char[] "auffangen" und daraus einen String machen.
Hier ist die Dokumentation der Klasse String:
http://download.oracle.com/javase/6/docs/api/java/lang/String.html

Wenn du das nun nicht alleine schaffst werde ich dir zumindest nicht mehr weiter helfen.
Du hast von vielen hier im Forum reichlich Hilfestellung bekommen. Die wenigsten Themen hier erreichen eine solche Länge. Jeder der Leute hier hat mehr Zeit aufgewandt es dir zu erklären als er vermutlich gebraucht hätte es einfach selber fertig zu machen. Ich habe dir hier fast schon fertigen Quelltext geliefert, wenn du nicht in der Lage bist daraus mehr zu machen, dann hast du die schlechte Note in der Schule auch wirklich verdient.
 
Ok ich hoffe jetzt ist es richtig:

Code:
private JButton getBtBestätigen() {
		if (btBestätigen == null ) {
			btBestätigen = new JButton();
			btBestätigen.setBounds(new Rectangle(190, 60, 100, 25));
			btBestätigen.setText("Bestätigen");
			btBestätigen.addActionListener(new java.awt.event.ActionListener()
			{
				public void actionPerformed(java.awt.event.ActionEvent e)
				{
					JPasswordField a = getPfPinNummer1();
					String b = karte1.getPin();
					char[] c= a.getPassword();
					String.valueOf(c);
				}
			});
			
		}
		return btBestätigen;
	}
 
Also jetzt mal GANZ erlich : ich schließ mich der Meinung von Technoblade voll und ganz an.
Wir alle hier haben bereits mehr Zeit aufgewendet dir die Grundlagen zu erklären wie du erstmal an das Passwort kommst als wir gebraucht hätten um die komplette Aufgabe *also mit Veränderung des Fensters und und und* zu lösen.
Und ich wiederhole mich echt ungerne zum dritten mal ... aber : wenn du von dir behauptest du hättest Programmiererfahurng und dein Problem läge erstmal nur in Java , warum schreibst du dann die Aufgabe nich in der Sprache die du kannst , postest und das und wir versuchen dir dann anhand dieses Beispieles zu erklären wie die einzelnen Code-Zeilen nach Java zu portieren sind damit es funktioniert.

Nun zu dem was du gepostet hast :
Schön das du wenigstens schon mal das Char-Array von JPasswordField.getPassword() auffängst. Aber in der Zeile dadrunter machst du wieder genau den selben Fehler : du speicherst das return von String.valueOf(char[]) nirgends hin. Außerdem ist das die eher umständlichere Variante da es auch einen String-Konstruktor gibt der ein Char-Array erwartet. Also einfach
Java:
String password=new String(a.getPassword());
um das ganze gleich mal in eine Zeile zu stecken und dir mal wirklich die Zeile als Lösung zu geben ...
Und JETZT kannst du mit
Java:
if(b.equals(password))
vergleichen ob das eingegebene Passwort mit dem der "Kopierkarte" übereinstimmt.
Und wenn du jetzt immer noch Probleme hast dann sag deinem Lehrer bitte folgendes : dass du auf Tutorials.de im Java-Forum nach einer Lösung gefragt hast und nur noch entnervte Antworten bekommen hast weil du es einfach nicht verstanden hast und das er es dir erklären soll.
Am besten du druckst den gesamten Thread hier aus und legst es deinem Lehrer vor damit er genau sieht welche Fehler DU gemacht hast. Und hebe dabei am besten die beiden Textstellen "ich habe Programmiererfahrung" und "ich verstehe das was mein Lehrer mir beibrigen will nicht" deutlich hervor.
Auch von mir aus : das war jetzt der letzte scheinbar wieder vergebliche Hilfeversuch mit ZWEI fertigen Zeilen Code für die Passwortabfrage.
Und ich bitte dich HIER schon im vorraus : eröffne bitte KEINEN zweiten Thread wenn du endlich die Passwortabfrage hinbekommen hast da es weiterhin um das selbe Thema geht. Du wirst also mit der kommentarlosen Löschung eines zweiten Threads rechnen müssen.

PS : wenn ich mir schon das Chaos angucke einen String-Vergleich auf die Reihe zu bekommen möchte ich nicht wissen wie lang dieser Thread erst bei der Umsetzung der GUI-Änderungen wird.
 

Neue Beiträge

Zurück