Wiederholte Abfrage?

Timo2010

Mitglied
Hallo,
ich habe einen Taschenrechner programmiert mittels Stacks.
Java:
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import zentralabi.linear.Stack;

public class TaschenrechnerModel implements ActionListener{
	private String operatorstand;
	private int sizeoperanden = 0;
	private double zwischenergebnis;
	private String usedoperator;
	private String lastbutton;

	
	public static void main(String[] args) {
		TaschenrechnerModel objekt = new TaschenrechnerModel();
	}
	public TaschenrechnerModel(){
	}
	public void checkoperator(String operatora, Object operatorb){
		/*
		 * Ist gleich
		 */
		if (((operatora == "*" || operatora == "/") && (operatorb == "*" || operatorb == "/")) || ((operatora == "-" || operatora == "+") && (operatorb == "-" || operatorb == "+"))){
				rechne();
				}
		/*
		 * Ist niedriger +/- dann mal geteilt
		 */
		else if ((operatora == "-" || operatora == "+") && (operatorb == "*" || operatorb == "/")){
			System.out.println("ist niedriger");
		}
		/*
		 * Ist höher
		 */
		else if ((operatora == "*" || operatora == "/") && (operatorb == "+" || operatorb == "-")){
			System.out.println("ist Höher");
		}
	}
	public void rechne(){
		if (sizeoperanden >=2 && !TaschenrechnerUIJWindow.operatoren.isEmpty()){
		double operandaint = Double.valueOf((String)TaschenrechnerUIJWindow.operanden.top());
		TaschenrechnerUIJWindow.operanden.pop();
		sizeoperanden--;
		double operandbint = Double.valueOf((String)TaschenrechnerUIJWindow.operanden.top());
		TaschenrechnerUIJWindow.operanden.pop();
		sizeoperanden--;
		String operator = (String)TaschenrechnerUIJWindow.operatoren.top();
		TaschenrechnerUIJWindow.operatoren.pop();
		if (operator == "*"){
			zwischenergebnis = operandaint * operandbint;
		}
		else if (operator == "/"){
			zwischenergebnis = operandaint / operandbint;
		}
		else if (operator == "+"){
			zwischenergebnis = operandaint + operandbint;
		}
		else if (operator == "-"){
			zwischenergebnis = operandaint - operandbint;
		}
		TaschenrechnerUIJWindow.operanden.push(zwischenergebnis);
		sizeoperanden++;
		}
	}

	public void addOperand(StringBuilder operand){
		TaschenrechnerUIJWindow.operanden.push(operand.toString());
		TaschenrechnerUIJWindow.operandenstrings.setLength(0);
	}
	
	public void actionPerformed(ActionEvent e) {
		/*
		 * Operanden werden auf den Operandenstapel gelegt
		 */
if (e.getSource()==TaschenrechnerUIJWindow.nine){
	TaschenrechnerUIJWindow.operandenstrings.append(9);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+9);
}
else if (e.getSource()==TaschenrechnerUIJWindow.eight){
	TaschenrechnerUIJWindow.operandenstrings.append(8);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+8);
}
else if (e.getSource()==TaschenrechnerUIJWindow.seven){
	TaschenrechnerUIJWindow.operandenstrings.append(7);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+7);
}
else if (e.getSource()==TaschenrechnerUIJWindow.six){
	TaschenrechnerUIJWindow.operandenstrings.append(6);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+6);
}
else if (e.getSource()==TaschenrechnerUIJWindow.five){
	TaschenrechnerUIJWindow.operandenstrings.append(5);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+5);
}
else if (e.getSource()==TaschenrechnerUIJWindow.four){
	TaschenrechnerUIJWindow.operandenstrings.append(4);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+4);
}
else if (e.getSource()==TaschenrechnerUIJWindow.three){
	TaschenrechnerUIJWindow.operandenstrings.append(3);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+3);
}
else if (e.getSource()==TaschenrechnerUIJWindow.two){
	TaschenrechnerUIJWindow.operandenstrings.append(2);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+2);
}
else if (e.getSource()==TaschenrechnerUIJWindow.one){
	TaschenrechnerUIJWindow.operandenstrings.append(1);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+1);
}
else if (e.getSource()==TaschenrechnerUIJWindow.zero){
	TaschenrechnerUIJWindow.operandenstrings.append(0);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+0);
	}
/*
 * Operatoren werden überprüft und je nach "Gewichtung" auf den Operatorenstapel gelegt
 */

if (e.getSource()==TaschenrechnerUIJWindow.mal){
	usedoperator = "*";
	if (TaschenrechnerUIJWindow.operandenstrings.toString() != ""){
		addOperand(TaschenrechnerUIJWindow.operandenstrings);
		sizeoperanden++;
		}
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+usedoperator);
	if (TaschenrechnerUIJWindow.operatoren.isEmpty()){
		TaschenrechnerUIJWindow.operatoren.push(usedoperator);
	}
	else {
	checkoperator(usedoperator,TaschenrechnerUIJWindow.operatoren.top());
	}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.geteilt){
		usedoperator = "/";
		TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+usedoperator);
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){
			TaschenrechnerUIJWindow.operatoren.push(usedoperator);
		}
		else {
		checkoperator(usedoperator,TaschenrechnerUIJWindow.operatoren.top());
		}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.plus){
		usedoperator = "+";
		TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+usedoperator);
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){
			TaschenrechnerUIJWindow.operatoren.push(usedoperator);
		}
		else {
		checkoperator(usedoperator,TaschenrechnerUIJWindow.operatoren.top());
		}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.minus){
		usedoperator = "-";
		TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+usedoperator);
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){
			TaschenrechnerUIJWindow.operatoren.push(usedoperator);
		}
		else {
		checkoperator(usedoperator,TaschenrechnerUIJWindow.operatoren.top());
		}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.comma){
		usedoperator = ".";
		TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+usedoperator);
		TaschenrechnerUIJWindow.operandenstrings.append(".");
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.plusminus){
		usedoperator = "*";
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.MC){
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){

		}
		else {
			checkoperator("*",TaschenrechnerUIJWindow.operatoren.top());
		}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.Mplus){
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){

		}
		
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.Mminus){
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){

		}
		}
	else if (e.getSource()==TaschenrechnerUIJWindow.MR){
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){

		}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.C){
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){

		}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.giveresult){
		System.out.println(TaschenrechnerUIJWindow.operanden.top());
	}
}
}

Die Klasse TaschenrechnerUIJWindow beinhaltet die GUI. Nun soll der Operator auf Höherwertigkeit, Gleichwertigkeit etc. geprüft werden. Dazu gibt es eine Methode checkoperator(), die den obersten Operator vom Stack mit dem über einen Button übertragenen Operator vergleicht. Das gibt auch keine Probleme. Der Fall Höherwertig ist natürlich einfach. Wenn allerdings der Operator gleichwertig ist (also z.B. mal und geteil oder mal und mal), dann soll zuerst ein ergebnis errechnet werden, aus den operanden 1 und 2 vom stapel und dem operator 1 vom stapel.

Nun sollte der oberste Operator vom Stapel genommen werden, die obersten Operanden gegen das Ergebnis der zwischenrechnung ausgetauscht werden und alles erneut geprüft werden.

Nun hänge ich etwas fest. Wie kriege ich es hin, dass dieser Prozess (erst rechnen, dann erneut prüfen) solange durchgeführt wird, bis der operatorenstapel leer ist oder der Operator höherwertig ist? Kann man das mit einer Schleife lösen oder braucht man rekursive Ansätze?

Mit freundlichem Gruß
 

Andi_CH

Top Contributor
Alles was man rekursiv lösen kann, kann auch durch eine schliefe ausgedrückt werden und umgekehrt ....
Dein Frage lässt sich so unmöglich beantworten.
 

Timo2010

Mitglied
Ich habe es über eine While Schleife versucht zu lösen, allerdings erhalte ich eine ArrayIndexOutofBoundsException. Ich weiß leider gerade nicht, wie ich den Fehler beheben könnte.
Java:
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import zentralabi.linear.Stack;

public class TaschenrechnerModel implements ActionListener{
	private String operatorstand;
	private int sizeoperanden = 0;
	private double zwischenergebnis;
	private String usedoperator;
	private String lastbutton;

	
	public static void main(String[] args) {
		TaschenrechnerModel objekt = new TaschenrechnerModel();
	}
	public TaschenrechnerModel(){
	}
	private boolean istHoeherwertig(String operator){
		String operatora = operator;
		Object operatorb = TaschenrechnerUIJWindow.operatoren.top();
		if ((operatora == "*" || operatora == "/") && (operatorb == "+" || operatorb == "-")){
			return true;
		}
		else {
			return false;
		}
	}
	
	public void rechne(String eingabeoperator){
		if (sizeoperanden >=2 && !TaschenrechnerUIJWindow.operatoren.isEmpty()){
		double operandaint = Double.valueOf((String)TaschenrechnerUIJWindow.operanden.top());
		TaschenrechnerUIJWindow.operanden.pop();
		sizeoperanden--;
		double operandbint = Double.valueOf((String)TaschenrechnerUIJWindow.operanden.top());
		TaschenrechnerUIJWindow.operanden.pop();
		sizeoperanden--;
		String stackoperator = (String)TaschenrechnerUIJWindow.operatoren.top();
		TaschenrechnerUIJWindow.operatoren.pop();
		if (stackoperator == "*"){
			zwischenergebnis = operandaint * operandbint;
		}
		else if (stackoperator == "/"){
			zwischenergebnis = operandaint / operandbint;
		}
		else if (stackoperator == "+"){
			zwischenergebnis = operandaint + operandbint;
		}
		else if (stackoperator == "-"){
			zwischenergebnis = operandaint - operandbint;
		}
		TaschenrechnerUIJWindow.operanden.push(zwischenergebnis);
		sizeoperanden++;
		while (istHoeherwertig(eingabeoperator)||TaschenrechnerUIJWindow.operatoren.isEmpty()){
			rechne(eingabeoperator);
		}
		}
	}

	public void addOperand(StringBuilder operand){
		TaschenrechnerUIJWindow.operanden.push(operand.toString());
		TaschenrechnerUIJWindow.operandenstrings.setLength(0);
	}
	
	public void actionPerformed(ActionEvent e) {
		/*
		 * Operanden werden auf den Operandenstapel gelegt
		 */
if (e.getSource()==TaschenrechnerUIJWindow.nine){
	TaschenrechnerUIJWindow.operandenstrings.append(9);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+9);
}
else if (e.getSource()==TaschenrechnerUIJWindow.eight){
	TaschenrechnerUIJWindow.operandenstrings.append(8);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+8);
}
else if (e.getSource()==TaschenrechnerUIJWindow.seven){
	TaschenrechnerUIJWindow.operandenstrings.append(7);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+7);
}
else if (e.getSource()==TaschenrechnerUIJWindow.six){
	TaschenrechnerUIJWindow.operandenstrings.append(6);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+6);
}
else if (e.getSource()==TaschenrechnerUIJWindow.five){
	TaschenrechnerUIJWindow.operandenstrings.append(5);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+5);
}
else if (e.getSource()==TaschenrechnerUIJWindow.four){
	TaschenrechnerUIJWindow.operandenstrings.append(4);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+4);
}
else if (e.getSource()==TaschenrechnerUIJWindow.three){
	TaschenrechnerUIJWindow.operandenstrings.append(3);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+3);
}
else if (e.getSource()==TaschenrechnerUIJWindow.two){
	TaschenrechnerUIJWindow.operandenstrings.append(2);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+2);
}
else if (e.getSource()==TaschenrechnerUIJWindow.one){
	TaschenrechnerUIJWindow.operandenstrings.append(1);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+1);
}
else if (e.getSource()==TaschenrechnerUIJWindow.zero){
	TaschenrechnerUIJWindow.operandenstrings.append(0);
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+0);
	}
/*
 * Operatoren werden überprüft und je nach "Gewichtung" auf den Operatorenstapel gelegt
 */

if (e.getSource()==TaschenrechnerUIJWindow.mal){
	usedoperator = "*";
	if (TaschenrechnerUIJWindow.operandenstrings.toString() != ""){
		addOperand(TaschenrechnerUIJWindow.operandenstrings);
		sizeoperanden++;
		}
	TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+usedoperator);
	if (TaschenrechnerUIJWindow.operatoren.isEmpty()){
		TaschenrechnerUIJWindow.operatoren.push(usedoperator);
	}
	else {
rechne(usedoperator);
	}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.geteilt){
		usedoperator = "/";
		TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+usedoperator);
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){
			TaschenrechnerUIJWindow.operatoren.push(usedoperator);
		}
		else {
			rechne(usedoperator);
		}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.plus){
		usedoperator = "+";
		TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+usedoperator);
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){
			TaschenrechnerUIJWindow.operatoren.push(usedoperator);
		}
		else {
			rechne(usedoperator);
		}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.minus){
		usedoperator = "-";
		TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+usedoperator);
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){
			TaschenrechnerUIJWindow.operatoren.push(usedoperator);
		}
		else {
			rechne(usedoperator);
		}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.comma){
		usedoperator = ".";
		TaschenrechnerUIJWindow.anzeige.setText(TaschenrechnerUIJWindow.anzeige.getText()+usedoperator);
		TaschenrechnerUIJWindow.operandenstrings.append(".");
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.plusminus){
		usedoperator = "*";
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.MC){
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){

		}
		else {
			rechne(usedoperator);
		}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.Mplus){
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){

		}
		
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.Mminus){
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){

		}
		}
	else if (e.getSource()==TaschenrechnerUIJWindow.MR){
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){

		}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.C){
		if (TaschenrechnerUIJWindow.operatoren.isEmpty()){

		}
	}
	else if (e.getSource()==TaschenrechnerUIJWindow.giveresult){
		System.out.println(TaschenrechnerUIJWindow.operanden.top());
	}
}
}
Wisst ihr, wo diese Exception entsteht und wie ich die Schleife stattdessen gestalten müsste? Zur Info: Es handelt sich hierbei um die Methode rechne(String operator);, wo der Fehler auftritt. Falls ihr noch weitere Fragen habt, bitte einfach stellen.
 
Zuletzt bearbeitet:

Andi_CH

Top Contributor
Wisst ihr, wo diese Exception entsteht und wie ich die Schleife stattdessen gestalten müsste? Zur Info: Es handelt sich hierbei um die Methode rechne(String operator);, wo der Fehler auftritt. Falls ihr noch weitere Fragen habt, bitte einfach stellen.
Es kommt selten vor, dass es mir frühenmorgen schon "den Hut hebt" wie wir hier sagen :eek:

Hast du den output der Exception schon mal angeschaut? Das steht exakt auf welcher Codezeile der Fehler ist.

Oder bist du schlicht zu faul dazu???

Oooommmmmmmmm - runterkommen. :pueh:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Wie erstelle ich dazu eine Abfrage ob der Button gedrückt wurde? Allgemeine Java-Themen 8
J Mehrfache if-else-Abfrage zusammenfassen Allgemeine Java-Themen 51
L 2 Dimensionale ListArray Abfrage nach einem Wert suchen Allgemeine Java-Themen 5
I Wie kann ich den Wert aus einer If abfrage ausgeben Allgemeine Java-Themen 23
Zeppi NullPointerException in einer if-Abfrage Allgemeine Java-Themen 6
1Raini Java if-Abfrage funktioniert nicht! Allgemeine Java-Themen 3
tom.j85 Exception bei Abfrage von Ländercodes in API? Allgemeine Java-Themen 13
T Fehler bei IF abfrage Allgemeine Java-Themen 8
D Mehrdimensionale Abfrage Allgemeine Java-Themen 15
MiMa If-Abfrage mit Parameter Allgemeine Java-Themen 8
kodela Binäre Abfrage Allgemeine Java-Themen 12
D MAC Adressen Abfrage Allgemeine Java-Themen 5
J Problem bei Hashmap Key-Abfrage Allgemeine Java-Themen 4
B Swing Hilfe bei Abfrage von Benutzernamen und Passwort Allgemeine Java-Themen 2
J If Abfrage funktioniert nicht Allgemeine Java-Themen 4
B Java Abfrage Netzbetrieb oder Akkubetrieb Allgemeine Java-Themen 1
T Login-Abfrage Allgemeine Java-Themen 3
T Login mit LDAP-Abfrage Allgemeine Java-Themen 3
M Event Handling Tastatur abfrage Allgemeine Java-Themen 5
2 If-Abfrage um Uhrzeit einzuordnen Allgemeine Java-Themen 2
F Java ip abfrage mit Dateiausgabe ? Allgemeine Java-Themen 2
V Java Editor Problem mit ! bei if-Abfrage Allgemeine Java-Themen 5
N Schlüsselworte if abfrage ob linke oder rechte maustaste gedrückt ist Allgemeine Java-Themen 5
H args abfrage vereinfachen Allgemeine Java-Themen 7
P Tastatur abfrage ohne KeyListener Allgemeine Java-Themen 3
E Methoden Server Benutzer abfrage Allgemeine Java-Themen 2
D Internet Abfrage aber mit Warteschleife Allgemeine Java-Themen 6
B Kapselung if-Abfrage bei "MVC-verteilten" Listenern Allgemeine Java-Themen 5
R JNI if abfrage gibt immer false zurück. Allgemeine Java-Themen 7
S if-Abfrage Allgemeine Java-Themen 5
B abfrage ob file ausgeführt wurde Allgemeine Java-Themen 4
Z Boolean Abfrage gibt kein Boolean zurück, aber warum? Allgemeine Java-Themen 6
P Google Abfrage auslesen Allgemeine Java-Themen 2
MQue Performance Methodenaufruf - if Abfrage Allgemeine Java-Themen 19
W ICQ Status Abfrage mit Java Allgemeine Java-Themen 3
M if - else Abfrage beenden Allgemeine Java-Themen 4
MQue if- Abfrage Allgemeine Java-Themen 4
B Abfrage ob JRE installiert ist, JAR automatisch starten Allgemeine Java-Themen 5
MQue if Abfrage Allgemeine Java-Themen 27
MQue if- Abfrage Allgemeine Java-Themen 26
C Versionsstring Abfrage Allgemeine Java-Themen 7
G Tastatur abfrage Allgemeine Java-Themen 8
D Doppeltverschachtelte if-Abfrage Allgemeine Java-Themen 10
Z mit java htaccess - abfrage bestätigen/umgehen Allgemeine Java-Themen 2
U if Abfrage macht etwas falsch Allgemeine Java-Themen 2
G Problem mit if-Abfrage bei Benutzeingabe Allgemeine Java-Themen 2
P Java Acces Datenbank Problem ! (Brauche eine Abfrage) Allgemeine Java-Themen 5
K Abfrage ob JRE oder JDK auf System installiert ist. Allgemeine Java-Themen 12
T IF Abfrage + YES_NO Option mittels JOptionPane Allgemeine Java-Themen 3
U IF-Abfrage Allgemeine Java-Themen 17
H Java-Abfrage Allgemeine Java-Themen 9
A FileChooser Datei-Überschreiben Abfrage Allgemeine Java-Themen 2
F Java Passwort abfrage Allgemeine Java-Themen 2
S CDDB-Abfrage mit Java unter Linux? Allgemeine Java-Themen 4
L Datenbank Abfrage (Felder&Tabelle nicht fix) in ArrayLis Allgemeine Java-Themen 4
S Integer-splitten für Abfrage. Allgemeine Java-Themen 4
G Abfrage in datenbank Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben