Benutzereingabe in form von string wieder ausgeben in JOptionPane

theoneand

Aktives Mitglied
Hallo, wieder mal ein kleiner dummer denkfehler....

meine aufgabe besteht darin 4 klassen mit Elementen zu machen mit einer methode protonen, die die anzahl der protonen wieder gibt, diese methode steht in einem interface IF_Atom.
Bis dahin hab ichs auch.
Jetzt meckert eclipse nur rum, wenn ich die eingabe entgegen nehme und wieder ausgeben will, dass ich das nicht als string kann.
habs (meiner Meinung nach) in char gewandelt, aber der fehler ist der gleich.....

weiß langsame nicht mehr weiter.
danke schon mal im vorraus

hier das coding ( nur die hauptklasse, rest ist nur Interface und die einzelnen klassen der elemente)

Java:
import javax.swing.JOptionPane;



public class Atom
{
	public static void main (String [] args)
	{
		IF_Atom ref;
		
		String input = JOptionPane.showInputDialog ("Bitte geben Sie: HE für Helium, H für Sauerstoff, L für Lithium, O für Wasserstoff ein");
		
		input = input.toUpperCase();
		if ((input.equals("HE")) == true)
		{
			input = new String ("K");
		}	
			else if ((input.equals("LI")) == true)
			{
				input = new String ("F");
			}
		char atome = input.charAt(0);
		

			
			
		switch (atome)
		{
		case "H":
			ref = new Wasserstoff();
			JOptionPane.showMessageDialog ("Anzahl der Protonen " + ref.protonen());
		
	}
}
 
ich denke dein Fehler liegt hier, habe es aber nur überflogen:

Java:
case "H":

das müsste so aussehen:

Java:
case 'H':

char immer in einfachen Hochkommatas!
 
Wie lautet die genaue Fehlermelung?
In dem geposten Code ist die Variable
Code:
ref
nicht initialisiert
Java:
		input = new String ("K");}
Hier reicht ein einfaches
Code:
input = "H";
new String nimmt man nur, wenn man explizit ein neues String Objekt erstellen will.
 
oh man danke an Kiri erst mal^^ wie dumm klar, char ist mit ' ' nicht mit " "....
jetzt macht er aber zwar da keine fehlermeldung mehr aber die 2. is immernoch da und zwar bei:

JOptionPane.showMessageDialog ("Anzahl der Protonen " + ref.protonen());

bei: showMessageDialog sagt er immernoch:
The method showMessageDialog(Component, Object) in the type JOptionPane is not applicable for the arguments (String)

----------------------------------------------------------------------------
an Michael:

variable ref wird in der switch initialisiert.
wenn ich es nur so schreibe wie du, ändert sich auch nix.

das ist die fehlermeldung:
The method showMessageDialog(Component, Object) in the type JOptionPane is not applicable for the arguments (String)

man ist so ein kleiner kackfehler nervig...
sry bin halt noch ziemlicher anfänger
 
probiers mal mit

Java:
JOptionPane.showMessageDialog (null, "Anzahl der Protonen " + ref.protonen());
 
s***** die wand an.... genau das wars....
wenn du mir jetzt noch sagen kannst was das null macht und warum mich das hier brauche, oder allgemein wann ich es brauche....
dann bist mein held heute^^
 
ist nicht wirklich meine Baustelle, deshalb keine Garantie für meine Antwort!

bei null erscheint der Dialog in der Mitte des Bildschirms. Du könntest statt null auch ein Objekt wie ein JFrame angeben, dann erscheint der Dialog in der Mitte des angegebenen JFrames.

Vielleicht könnte das jemand bestätigen bzw. korrigieren 😉
 
ok, trotzdem danke, ich mach mich mal im forum schlau, da wirds bestimmt noch die eine oder andere frage dazu geben, ich dank dir, hast mir wirklich geholfen, hänge seit ewigkeiten an der aufgabe und komm nich weiter^^
und wie immer sind es so kleine banale fehler 😀

schönen tag noch
 
Es gilt normal:

Java:
showMessageDialog(Component parentComponent, Object message)

Kannst du auch in der Api unter JOptionPane nachgucken.

Du brauchst also eine Componente, auf der dieses Fenster erscheinen soll, und eine Message.
Bei "null" erscheint er, wie Kiri schon gesagt hat, in der Mitte des Bildschirmes.

mfg
 
ahh ok,danke, klingt einleuchtend 😀
nur mal so nebenbei, warum brauch ich diesen befehl bei dem FileInputDialog nicht??
da erscheint das fenster doch automatisch in der mitte.

grüßle
 
Ich weiß nicht genau, was du meinst. Programmiere auch erst seit ca. 1 Monat mit Java.
Die api ist aber echt gut, du kannst hier nach Allem suchen, was du in Java tun willst. 😀

Ich kenne nur den FileDialog und den von JOptionPane.showInputDialog

Bei dem showInputDialog heißt es:

Java:
showInputDialog(Component parentComponent, Object message)

Er sollte also eigentlich auch eine Fehlermeldung angeben.

mfg
 
Ich weiß nicht genau, was du meinst. Programmiere auch erst seit ca. 1 Monat mit Java.
Die api ist aber echt gut, du kannst hier nach Allem suchen, was du in Java tun willst. 😀

Ich kenne nur den FileDialog und den von JOptionPane.showInputDialog

Bei dem showInputDialog heißt es:

Java:
showInputDialog(Component parentComponent, Object message)

Er sollte also eigentlich auch eine Fehlermeldung angeben.

mfg

nicht ganz, es gibt u.a. auch

Java:
showInputDialog(Object message, Object initialSelectionValue)

oder in deinem Fall auch einfach folgende Variante

Java:
showInputDialog(Object message)

deshalb ist es genauso wie du es hast auch richtig.

Warum diese letzte Variante nicht auch für showMessageDialog angeboten wird, weiß ich aber auch nicht.

Zur API kommst du übrigens auch, wenn du in den hier geposteten Quellcodes auf die unterstrichenen Wörter klickst. Also klick doch in deinem Fall mal JOptionPane in deinem Quellcode! Dort wird man meist fündig!
 
hab ich, aber da ist es genauso wie du sagst, man kann es mit und ohne machen^^
naja manches muss man einfach nicht verstehen 😀

trotzdem danke dir
 

Neue Themen


Zurück
Oben