Compiler-Fehler Boolean: Missing Return Statement

PStigerID

Mitglied
Hallo liebes Forum,

Schönen Pfingstsonntag!

Hier mein Problem: Java denkt, dass dieser Boolean kein "Return Statement" zurückgibt. Wie kann ich Java davon überzeugen, dass es dies doch macht?

Fehlermeldung:
[Java]
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code - missing return statement
at NewJFrame.pas(NewJFrame.java:932)
at NewJFrame.<init>(NewJFrame.java:33)
at NewJFrame$17.run(NewJFrame.java:982)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
BUILD SUCCESSFUL (total time: 4 seconds)
[/Java]


Code:
[Java=931] final boolean pas()
{
String password = "";
String na = "";
wrongP++;
JPasswordField pwf = new JPasswordField();
JTextField nam = new JTextField();
pwf.setEchoChar('*');
Object[] ob = {"Please enter your name passowrd:\n\n", na+"\n",pwf};
Object[] obj = {"Check Password" };
int a = JOptionPane.showOptionDialog(this, ob, "Identification Required", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null, obj, ob );
if(a == 0) //When Check Passswrod button is pressed
{
na = nam.getText();
password = new String(pwf.getPassword());
}
while(password==null ||na==null)
{
a = JOptionPane.showOptionDialog(this, ob, "Identification Required", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null, obj, ob );
if(a == 0)
{
na = nam.getText();
password = new String(pwf.getPassword());
}
}

if(password.equals("test"))
{
Object[] obje = {"OK"};
int abc = JOptionPane.showOptionDialog(this,"Welcome: "+na,"Welcome to the Gambe!", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE, null, obje,0);
if(abc!=3)
return true;
}
else
{
if(wrongP!=3)
{
Object[] o = {"Try again"};
JOptionPane.showOptionDialog(this, "You could not vertify that you are authorized to access the \n document you requested. Either you supplied the wrong credentials \n (e.g.: bad password), or java doesn't understand how to supply the credentials required.", "401 Authorization Required",JOptionPane.YES_NO_OPTION,JOptionPane.ERROR_MESSAGE, null, o, o[0]);
}
return false;
}
}
[/Java]

Danke!

PStiger
 
Indem du es machst!

Hier gibt es einen denkbaren Fall, in dem kein boolean zurückgegeben wird:

[JAVA=957]
if(password.equals("test"))
{
Object[] obje = {"OK"};
int abc = JOptionPane.showOptionDialog(this,"Welcome: "+na,"Welcome to the Gambe!", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE, null, obje,0);
if(abc!=3)
return true;
}
[/code]

Wenn die erste if-Abfrage true ist, aber die zweite false, dann gibst du kein boolean zurück.

Gruß Fant
 
Java:
if (password.equals("test")) {
			Object[] obje = { "OK" };
			int abc = JOptionPane.showOptionDialog(null, "Welcome: " + na,
					"Welcome to the Gambe!", JOptionPane.YES_NO_OPTION,
					JOptionPane.PLAIN_MESSAGE, null, obje, 0);
			// Was soll passieren wenn abc != 3 ist?
			if (abc != 3)
				return true;
		} else {
 
Java:
if (password.equals("test")) {
			Object[] obje = { "OK" };
			int abc = JOptionPane.showOptionDialog(null, "Welcome: " + na,
					"Welcome to the Gambe!", JOptionPane.YES_NO_OPTION,
					JOptionPane.PLAIN_MESSAGE, null, obje, 0);
			// Was soll passieren wenn abc != 3 ist?
			if (abc != 3)
				return true;
		} else {

Wenn OK gedrückt wird. Habe es rausgenommen und es funkzioniert trotzdem!
 

Zurück
Oben