Methoden Switch wählt das Falsche

rooonny

Mitglied
Guten Tag,

ich stell mich erst einmal vor: Ich bin der Ronny bin 18 Jahre und programmiere ein bisschen rum :)
Darauf gekommen bin ich eigentlich durch die Berufsschule, weil da haben wir JAVA-Programmierung und das hat mir halt Spaß gmehacht und seitdem mach ich so kleine Projekte wie: Taschrechner, BMI-Rechner und so weiter. Als letzen Schritt haben ich mit meinem Lehrer das Speichern besprochen und das klappt auch alles ganz gut. (mit BuffredWriter)

Als ich das alles ganz gut verstanden habe, habe ich mich an mein erstes "großes" Projekt getraut.

Und da bin ich jetzt leider an ein Problem gestoßen mit switch und case. Das ist ja eigentlich eine ganz einfach Sache, aber leider klappt es bei mir nicht :(

Ich möchte für jeden Tisch eine eigene Datei erstellen, deshalb habe ich diese Anweisung in eine eigene Methode geschrieben: void schutzmittelEintrag(final int nr)
Es wird der button: schutzeintragen gedrückt damit das geschieht.
Der Übergabeparameter ist da, damit bei jeder Datei die Nummer hinzugefügt wird.
Mit einem chioce (hier zahlEins) wähle ich den Tisch aus
und mit switch welche nummer in den Dateinamen geschrieben wird, damit ich es zuordnen kann.

ich füge mal den Code ein:

Java:
void schutzmittelEintrag(final int nr){
		
		schutzeintragen.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				String mittel;
				String datum;
				String ftext;
				mittel = cschutzm.getSelectedItem();
				datum = schutzdatum.getText();
				ftext = mittel + " am " + datum + " gegeben\n";
				schutzhistorie.appendText(ftext);
				
				
				try
				{
				BufferedWriter schutzspeicher;
				schutzspeicher = new BufferedWriter(new FileWriter(nr+ "schutzdatei.txt", true));
				schutzspeicher.write(ftext);
				schutzspeicher.close();
				}
			catch(IOException fehler)
			{}
			
			}
		});}
		
			
			
			
		void schutzmittelladen(final int nr){
			bfuellen.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					
					try
					{	
						BufferedReader texteingabe;
						texteingabe = new BufferedReader(new FileReader("schutzdatei" + nr + ".txt"));
						
						String text = "";
						String textzeile;
						textzeile = texteingabe.readLine();
						while(textzeile != null)
						{
							
							text = text + textzeile + "\n";
							textzeile = texteingabe.readLine();
						}
						texteingabe.close();
						schutzhistorie.setText(text);
					}
					catch(IOException f)
					{}
					}});
			}

		
			

		void auswahlTisch(){
			
			if(kob.getSelectedItem() == "K")
			{ int i = Integer.parseInt(zahlEins.getSelectedItem());
				switch(i)
				{	case 1:
					schutzmittelEintrag(1);
					break;
				 	case 2:
				 	schutzmittelEintrag(2);
				 	
					break;
				 	case 3:
				 	schutzmittelEintrag(3);	
						
					break;
					case 4:
					schutzmittelEintrag(4);	 
						 
					break;
					case 5:
					schutzmittelEintrag(5);
							
					break;
					case 6:
					schutzmittelEintrag(6);		 
							 
					break;
					case 7:
					schutzmittelEintrag(7);			
								
					break;
					case 8:
					schutzmittelEintrag(8);			 
								 
					break;
					case 9:
					schutzmittelEintrag(9);				
									
					break;
					case 10:
					schutzmittelEintrag(10);				 
									 
					break;
					case 11:
					schutzmittelEintrag(11);					
										
					break;
					case 12:
					schutzmittelEintrag(12);					 
										 
					break;
					default:
						}}
			else
			{
				{switch(zahlEins.getSelectedItem())
				{	case "1":
					schutzmittelEintrag(1);	
					
					break;
				 	case "2":
				 	schutzmittelEintrag(2);	
					 
					break;
				 	case "3":
				 	schutzmittelEintrag(3);	
						
					break;
					case "4":
					schutzmittelEintrag(4);	
						 
					break;
					case "5":
					schutzmittelEintrag(5);	
							
					break;
					case "6":
					schutzmittelEintrag(6);	
							 
					break;
					case "7":
					schutzmittelEintrag(7);	
								
					break;
					case "8":
					schutzmittelEintrag(8);	
								 
					break;
					case "9":
					schutzmittelEintrag(9);	
									
					break;
					case "10":
					schutzmittelEintrag(10);	
									 
					break;
					case "11":
					schutzmittelEintrag(11);	
										
					break;
					case "12":
					schutzmittelEintrag(12);	
										 
					break;
					default:
						}}
				
				
				
				
				
			}
		}
}


Der Code ist nicht fertig.
Zum Verständnis: Es gibt zwei Gruppen von Tischen K und B. Bei if-Auswahl wird K gewählt.

Mein Problem ist jetzt, dass switch IMMER den ersten nimmt, also "case 1:" EGAL welche zahl ich bei zahlEins übergebe. Ich habe es auch schon mit einem String versucht, aber leider das gleiche Ergebnis.
Also kompalieren lässt sich alles und das Programm starten auch.

Ich weiß nicht mehr weiter, wäre nett wenn ihr mir sagen könntet wo das Problem ist. DANKE!!
 
Zuletzt bearbeitet:

njans

Top Contributor
Java:
kob.getSelectedItem() == "K"
Strings vergleicht man mittels equals ->
Java:
kob.getSelectedItem().equals("K")

Außerdem frage ich mich nach dem Sinn deiner Switche:

Java:
if (i > 0 && i < 13)
    schutzmittelEintrag(i);
Das erfüllt die selbe Funktion, wie dein erster Switch. Analog zum zweiten kann man da natürlich auch etwas bauen.
 

rooonny

Mitglied
Leider geht´s jetzt gar nicht mehr. Ich habe die Switch-Sachen rausgenommen....
Er reagiert jetzt nicht mahr aus den Button.

Warum? Kann ich mir echt nicht erklären, weil in den ersten beiden Methoden habe ich gar nicht verändert.

Java:
void schutzmittelEintrag(final int nr){
		
		schutzeintragen.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				String mittel;
				String datum;
				String ftext;
				mittel = cschutzm.getSelectedItem();
				datum = schutzdatum.getText();
				ftext = mittel + " am " + datum + " gegeben\n";
				schutzhistorie.appendText(ftext);
				
				
				try
				{
				BufferedWriter schutzspeicher;
				schutzspeicher = new BufferedWriter(new FileWriter(nr+ "schutzdatei.txt", true));
				schutzspeicher.write(ftext);
				schutzspeicher.close();
				}
			catch(IOException fehler)
			{}
			
			}
		});}
		
			
			
			
		void schutzmittelladen(final int nr){
			bfuellen.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					
					try
					{	
						BufferedReader texteingabe;
						texteingabe = new BufferedReader(new FileReader(nr+"schutzdatei.txt"));
						
						String text = "";
						String textzeile;
						textzeile = texteingabe.readLine();
						while(textzeile != null)
						{
							
							text = text + textzeile + "\n";
							textzeile = texteingabe.readLine();
						}
						texteingabe.close();
						schutzhistorie.setText(text);
					}
					catch(IOException f)
					{}
					}});
			}

		
			

		void auswahlTisch(){
			
			if(kob.getSelectedItem().equals("K"))
			{ int i = Integer.parseInt(zahlEins.getSelectedItem());
				{if ( i > 0 && i > 13){
					schutzmittelEintrag(i);
				}
				else{
					
					//...
					
					
				};
						}}
			else
			{
				{switch(zahlEins.getSelectedItem())
				{	case "1":
					schutzmittelEintrag(1);

Unten ist es noch mit Switch... ändere ich dann ab wenn ich weiß warum das nicht mehr geht.
 

njans

Top Contributor
Java:
if ( i > 0 && i > 13)
Wenn du das if auch falsch machst ist es kein Wunder.
Java:
if ( i > 0 && i < 13)
 
Zuletzt bearbeitet:

rooonny

Mitglied
Danke, aber das Problem besteht leider weiterhin. Das Programm erstellt immer die Datei: "1schutzdatei.txt" egal was ich bei
zahlEins auswähle.

Schön langsam ist mur das peinlich. Aber Alles klappt außer das.

Wenn ich es allerdings so schreibe...

Java:
void auswahlTisch(){
			
			if(kob.getSelectedItem().equals("K"))
			{ int i = 8;
				{if ( i > 0 && i < 13){
					schutzmittelEintrag(i);
				}
				else{
					
					//...
					
					
				};

Erstellt er die Datei "8schutzdatei.txt" So wie es sein soll. Dann stimmt doch was mit dem zahlEins.getSelectedItem() nicht. Oder?
 
Zuletzt bearbeitet:

rooonny

Mitglied
Hi,

ich habe jetzt mal bisschen weiter geforscht, warum das nicht gehen könnte. Ich habe mal die Ausgabe von
Java:
zahlEins.getSelectedItem()
in einen String schreiben lassen. Und da kaommt dann "null".

Das heißt ja eigentlich "gar nix" oder so ;)

Aber da ist was ausgewählt und blau hinterlegt ist es auch.

Vielleicht hilft das ja weiter. DANKE!
 
Zuletzt bearbeitet:

njans

Top Contributor
Dann würde ich vermuten, dass du in der Component
a) nichts ausgewählt hast
b) die falsche Component abfragst

Aber was genau kann man ohne mehr Code nicht sagen.
 

rooonny

Mitglied
Hallo ich bin es nochmal :) Ich habe jetzt eine andere Möglichkeit gefunden die Auswahl zutreffen. Nur leider komme ich jetzt beim laden mit BufferedReader nicht weiter und da wollte ich jetzt keine extra Thema anfangen.

Nämlich:
Java:
int laden(String was){
	
	try{
		BufferedReader la;
		String be1 = kob.getSelectedItem();
		String be2 = zahlEins.getSelectedItem();
		String wert;
		int werti = 0;
		la = new BufferedReader(new FileReader(be1+be2+was+"rtb"));
		wert = la.readLine();
		werti = Integer.parseInt(wert);
	    la.close();
	    return werti;
	    
	}
	
	catch(IOException fehler){}
	}

Ich wollte da eine Methode schreiben die den geladenen Wert als int ausgibt, da die Datei als String gespeichert ist parse ich sie um, aber leider meint er trotzdem immer noch das, das die Methode kein Int ausgibt.

Wäre um jede Hilfe dankbar!

Da Ronny
 

rooonny

Mitglied
Gar nix ;) , weil wenn ich vorher nichts gespeichert habe dann soll er ja auch nichts machen, dann soll das Blanko (ich habe eine GUi mit Zeilen) einfach da bleiben...

Ist das ein Problem? Beim speichern habe ich das übrigens genau so und das geht super.

Da Ronny
 
Zuletzt bearbeitet:

Thallius

Top Contributor
Die Method laden erwartet einen Rückgabewert vom typ int. Das hast du selber so definiert. Also muss diese auch in jedem Fall ein int zurück geben auch wenn sie eine Exception wirft.

Gruß

Claus
 

husox123

Mitglied
Hi, Ich habe leider nicht so richtig verstanden, was man programmieren sollte. Das könnte an mir liegen sorry.
Wenn du es gründlich erklärst, kann ich vielleicht dazu etwas sagen.
 

rooonny

Mitglied
Hi husox123 ich wollte nur eine methode schreiben die den eingelesenen wert als int zurüch gibt. da die gespeicherte datei allerdings ein String ist war das alles nicht ganz so einfach. Aber jetzt hat es geklappt, nochmal danke an Thallius!!

Da Ronny
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
A switch statement Java Basics - Anfänger-Themen 4
volcanos enum und switch (neu): falschen Wert mit IllegalArgumentException oder mit EnumConstantNotPresentException abfangen ? Java Basics - Anfänger-Themen 51
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
Lion.King switch-Befehl Java Basics - Anfänger-Themen 6
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
P9cman Vokal Zähler mit switch case und for-Schleife Java Basics - Anfänger-Themen 4
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
C if-Konstrukt durch switch-Konstrukt ersetzen Java Basics - Anfänger-Themen 14
1 Switch Case Java Basics - Anfänger-Themen 3
T Alternative für switch case Java Basics - Anfänger-Themen 1
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
B Notensystem Switch-Case Java Basics - Anfänger-Themen 31
S Switch-Case zur Berechnung der Einkommensteuer Java Basics - Anfänger-Themen 15
F Switch case wird als char nicht erkannt.... Java Basics - Anfänger-Themen 6
V Switch Methode macht Code kaputt Java Basics - Anfänger-Themen 18
H Frage zur if-Bedingung bzw switch case Java Basics - Anfänger-Themen 6
S switch case fängt beim letzten case an Java Basics - Anfänger-Themen 6
J Parameterübergabe in switch? Java Basics - Anfänger-Themen 2
M Switch Java Basics - Anfänger-Themen 2
F Switch Case Problem mit Regex lösen? Java Basics - Anfänger-Themen 6
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
NoMercy BitFlags Programm (switch on/off , swap und isSet) Java Basics - Anfänger-Themen 7
S Switch-Case für eine Array-Zuordnung Java Basics - Anfänger-Themen 5
S switch und case Java Basics - Anfänger-Themen 1
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
B Problem bei switch statement Java Basics - Anfänger-Themen 4
D Klassen Problem bei switch-case? Java Basics - Anfänger-Themen 2
E Input/Output Switch ausgabe anpassen bzw. anders darstellen Java Basics - Anfänger-Themen 13
A Warum funktioniert switch aber nicht if/else? Java Basics - Anfänger-Themen 23
B Wiederholen einer if/switch-case Schleife Java Basics - Anfänger-Themen 9
X Nach switch case weiter mit Auswahl Java Basics - Anfänger-Themen 7
T switch case und continue Java Basics - Anfänger-Themen 5
D switch case Code Java Basics - Anfänger-Themen 3
K Erste Schritte switch - Warum sind long/float/double/... nicht erlaubt? Java Basics - Anfänger-Themen 5
Ponychan95 Erste Schritte Switch fällt immer bis zum default durch Java Basics - Anfänger-Themen 4
P Bei Switch-Anweisung wird default-Anweisung angezeigt Java Basics - Anfänger-Themen 4
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
O This in switch anweisung Java Basics - Anfänger-Themen 5
V Fehlerhafte BufferedReader/switch Benutzung? Java Basics - Anfänger-Themen 2
F Erste Schritte Switch case vs. Verschachtelte If Anweisung Java Basics - Anfänger-Themen 11
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
B Erste Schritte Addition von double in switch-Anweisung Java Basics - Anfänger-Themen 2
M Endlosschleife bricht durch switch ab Java Basics - Anfänger-Themen 17
R Switch: Nach durchlaufen des Case wieder zum Menü Java Basics - Anfänger-Themen 3
D Array in switch Java Basics - Anfänger-Themen 3
A Switch Case Java Basics - Anfänger-Themen 5
Devil0s if vs. switch Java Basics - Anfänger-Themen 27
F Reset in der switch Anweisung Java Basics - Anfänger-Themen 3
R Compiler-Fehler Auf selben Array in mehreren "cases" vom "Switch" zugreifen Java Basics - Anfänger-Themen 11
R Switch Werte außerhalb verwenden Java Basics - Anfänger-Themen 2
D Eine Variable in mehreren "switch" Java Basics - Anfänger-Themen 24
M Switch mit String Java Basics - Anfänger-Themen 20
T Erste Schritte switch case Anweisung und if else Verzweigungen? Java Basics - Anfänger-Themen 6
M Variablen Switch Bedingungen Java Basics - Anfänger-Themen 12
A ArrayList-iteration mit Prüfung auf instanceof durch switch case? Java Basics - Anfänger-Themen 13
P Switch Case - Fließkommazahl Java Basics - Anfänger-Themen 2
Z Switch umsetzung Java Basics - Anfänger-Themen 6
lulas[]args Fehlerhafte Switch Java Basics - Anfänger-Themen 6
lulas[]args Switch Schleife - orphaned case Java Basics - Anfänger-Themen 27
W "switch" Anweisung - Rechenzeichen? Java Basics - Anfänger-Themen 5
T kleines problem mit switch case Java Basics - Anfänger-Themen 11
I Methoden Wochenkalendar switch anweisung fehlt Java Basics - Anfänger-Themen 4
C Switch Anweisung Frage Java Basics - Anfänger-Themen 8
R Switch/Case frage: Java Basics - Anfänger-Themen 12
Luk10 Frage zu Switch-Anweisung Java Basics - Anfänger-Themen 11
C Erste Schritte switch Anweisung geht nicht Java Basics - Anfänger-Themen 3
R Switch Abfrage: Found boolean but expected int? Java Basics - Anfänger-Themen 7
T Umschreiben von switch in if else und umgekehrt Java Basics - Anfänger-Themen 9
K Input/Output switch case - Parameterübergabe args[0] Java Basics - Anfänger-Themen 34
P Compilerfehler bei switch-case Java Basics - Anfänger-Themen 18
R 3 Datumsangaben sortieren mittels Switch Java Basics - Anfänger-Themen 9
J Switch mit if anweisung kombinieren Java Basics - Anfänger-Themen 2
D Kann man eine for-Schleife mit switch kombinieren? Java Basics - Anfänger-Themen 8
D Switch und Case Java Basics - Anfänger-Themen 3
F Ps to kW Konvertierer switch-case Problem Java Basics - Anfänger-Themen 4
F Datentypen Ganz simpler Taschenrechner mit switch Java Basics - Anfänger-Themen 10
M '-1' in switch anweisung Java Basics - Anfänger-Themen 2
T Parser mit switch "Weg" ausgeben? Java Basics - Anfänger-Themen 5
Q switch case hier möglich Java Basics - Anfänger-Themen 10
A Switch-Case Problem Java Basics - Anfänger-Themen 17
A Do While mit Switch Case Java Basics - Anfänger-Themen 2
Luk10 switch - Problem Java Basics - Anfänger-Themen 9
S char im switch Java Basics - Anfänger-Themen 16
berti99 Switch-Case || Problem... Java Basics - Anfänger-Themen 6
R Switch-Case Selektion Java Basics - Anfänger-Themen 13
O Switch-Case - Case 4 erhöhen Java Basics - Anfänger-Themen 9
P Problem mit switch-Funktion Java Basics - Anfänger-Themen 5
K Ich verstehe switch einfach nicht Java Basics - Anfänger-Themen 4
M Frage zu Mehrfachauswahl mit switch ... case Java Basics - Anfänger-Themen 3
R Umlaute mit Switch-Case tauschen Java Basics - Anfänger-Themen 26

Ähnliche Java Themen

Neue Themen


Oben