Sorry ich habs -- fürcht ich -- aus Versehen im falschen Board gepostet. Wollte es eigentlich in Java Basics posten...
Ich habe vor einiger Zeit ein kleines Programm geschrieben, das den Gaußschen Algorithmus implementiert. Allerdings bisher ohne GUI. Bisher wurden die Zahlenwerte der Ausgangsmatrix über Konsole gelesen und damit gerechnet.
Jetzt bin ich daran auch eine simple GUI zu schreiben und diese funktioniert auch soweit wunderbar. Ich habe eine Menge Eingabefelder, die Double-Werte lesen und ich speichere diese dann in einem zweidimensionalen Array.
So sieht das aus:
So speichere ich die Double-Werte aus den Eingabefeldern in das value-Array:
Meine Frage ist nun: Wie bekomme ich die Daten (values[][]) aus meiner GUI-Klasse in meine Gauss-Klasse, die das eigentliche Verfahren mit den Werten durchführt?
Ich hab darüber nachgedacht, ob man einfach einen Getter schreiben sollte, womit die Gauss-Klasse das zweidimensionale Array mit den Werten erhält und dieses in ein eigenes Attribut -- ein weiteres zweidimensionales Array -- speichert. Allerdings ist das wohl kaum besonders effizient... Und man bräuchte zwei im Prinzip identische Attribute.
Ein Kommilitone von mir hat geraten das Registry-Pattern zu verwenden. Ich soll irgendwie eine HashMap, die die Werte enthält, registrieren (wo ist mir schon schleierhaft...) und kann dann von der Gauss-Klasse auf die registrierten Werte zugreifen.
Kurzum: Wie stellt man es effizient und geschickt an, die Werte von der GUI-Klasse an die Gauss-Klasse zu übertragen? Ich weiß einfach nicht so recht welcher Weg sinnvoll ist...
Tausend Dank für Hilfe!
Ich habe vor einiger Zeit ein kleines Programm geschrieben, das den Gaußschen Algorithmus implementiert. Allerdings bisher ohne GUI. Bisher wurden die Zahlenwerte der Ausgangsmatrix über Konsole gelesen und damit gerechnet.
Jetzt bin ich daran auch eine simple GUI zu schreiben und diese funktioniert auch soweit wunderbar. Ich habe eine Menge Eingabefelder, die Double-Werte lesen und ich speichere diese dann in einem zweidimensionalen Array.
So sieht das aus:
Java:
private final static int n = 3; // Die Groeße der quadratischen Matrix. Im Moment noch hart im Code, soll dann spaeter aber eingelesen werden.
private ArrayList<ArrayList<JFormattedTextField>> fields = new ArrayList<ArrayList<JFormattedTextField>>(); // Die Eingabefelder werden in einer verschachtelten ArrayList gespeichert
private double [][] values = new double [n][n+1]; //Hier hinein speichere ich vorerst die gelesenen Werte
So speichere ich die Double-Werte aus den Eingabefeldern in das value-Array:
Java:
for (int row = 0; row < n; row++) {
for (int col = 0; col < (n+1); col++) {
values[row][col] = ((Number) fields.get(row).get(col).getValue()).doubleValue();
}
}
Meine Frage ist nun: Wie bekomme ich die Daten (values[][]) aus meiner GUI-Klasse in meine Gauss-Klasse, die das eigentliche Verfahren mit den Werten durchführt?
Ich hab darüber nachgedacht, ob man einfach einen Getter schreiben sollte, womit die Gauss-Klasse das zweidimensionale Array mit den Werten erhält und dieses in ein eigenes Attribut -- ein weiteres zweidimensionales Array -- speichert. Allerdings ist das wohl kaum besonders effizient... Und man bräuchte zwei im Prinzip identische Attribute.
Ein Kommilitone von mir hat geraten das Registry-Pattern zu verwenden. Ich soll irgendwie eine HashMap, die die Werte enthält, registrieren (wo ist mir schon schleierhaft...) und kann dann von der Gauss-Klasse auf die registrierten Werte zugreifen.
Kurzum: Wie stellt man es effizient und geschickt an, die Werte von der GUI-Klasse an die Gauss-Klasse zu übertragen? Ich weiß einfach nicht so recht welcher Weg sinnvoll ist...
Tausend Dank für Hilfe!
Zuletzt bearbeitet: