Swing Schulprojekt GUI mathematische aufgaben

lukatoni92

Mitglied
Guten Abend zusammen,

es handelt sich um folgendes und zwar ich mache eine schulische Ausbildung als Mathematisch-technischer assistent und habe unter anderem auch das Fach Fallstudien Numerik, wo wir java programmieren mit eclipse.

Wir haben im Moment ein Schulprojekt, das benotet wird und zwar sollen wir dort ein Programm, wo wir Matheaufgaben programmieren sollen, in einer GUI:Zerfallsprozess, Statistische auswertungen, Vektorenrechnung, Matrizenrechnungen und das sollen wir alles in eine schöne GUI verpacken.

Ich bin leider totaler nicht so begabt im Programmieren, aber ich habe mir das so vorgestellt:
es soll ein JFrame geben wo z.B stehet was wollen Sie ausrechnen und in einer JCombobox die Liste mit den Themen aufgezählt werden, ok das habe ich nun beschriftet, ich weiß leider nicht wie ich es machen kann wenn ich eine dieser Rechnungen ausgewählt habe, dass sich dann ein neues Gui öffnen bzw. eine neue Klasse öffnet, die ich wählen möchte

Java:
private JComboBox getJComboBoxAuswahlfeld() {
		if(jComboBoxAuswahlfeld == null) {
			ComboBoxModel jComboBoxAuswahlfeldModel = 
				new DefaultComboBoxModel(
				new String[] { "Wachstums- bzw Zerfallsprzesse", 
							"Lösungen quadratischer Gleichungen",
							 "Statistische Auswertungen",
							 "Vektorrechnung",
							"Matrizenrechnung"});
			jComboBoxAuswahlfeld = new JComboBox();
			jComboBoxAuswahlfeld.setModel(jComboBoxAuswahlfeldModel);
			jComboBoxAuswahlfeld.setBounds(12, 55, 368, 22);
			jComboBoxAuswahlfeld.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					jComboBoxAuswahlfeldActionPerformed(evt);


Das war mein erstes Problem.

Mein zweites ist ich soll eine Zinseszins rechnung ausrechnen, wo laut angabe der jahre sich die for schleife bleibig wiederholt und durch die schleife es jedes mal ein sysout erzeugt werden soll mit jahr 1, jahr2 ...., das habe ich zwar schonmal programmiert aber konnte es nur mit der konsole ausgeben und ich weiß nicht wie ich es im GUI ausgeben kann ich war am überlegen mit JTextpanel aber ich weiß nicht wie ich einstellen kann, das es dort ausgegeben wird.

Mein 3tes problem ist ich weiß nicht wirklich was ich dann dort aktivieren soll, bei den Jbuttons muss ich ja immer den Actionevent auf handler Methode ein schalten, aber bei den anderen ???:L

Vielen Dank im vorraus

LG
Toni
 
Zuletzt bearbeitet von einem Moderator:
M

Marcinek

Gast
Und nu?

Kann man das nicht ergoogeln?

Using JTextArea
Using JButton
Using J<KomonentenName>
 

lukatoni92

Mitglied
Sehr freundlich....

Ich saß 1 Std am Rechner um es mir zu ergooglen aber leider ohne Erfolg
Wie kann ich aber den die j combobox verknüpfen mit anderen GUI Klassen das er die beim Aufruf offnet
 
Zuletzt bearbeitet:

lukatoni92

Mitglied
ja ich habe ja in der jcombobox die leiste ich ich die verschiedenen auswahl möglichkeiten drin habe.

wenn ich dann eine auswahlmöglichkeit anklicke und dann auf start drücke sich das JFrame öffnet was ich bei der auswahlmöglichkeit angeklickt habe
 

L-ectron-X

Gesperrter Benutzer
Kannst du das noch mal neu formulieren? Ich habe das jetzt 3 mal gelesen und nicht verstanden, was du sagen wolltest.
Was ist daran so schwer, sich verständlich auszudrücken? Wenigstens das sollte möglich sein, wenn man schon auf Satzzeichen und Groß-/Kleinschreibung verzichtet.
 

lukatoni92

Mitglied
Das mit der Combobox hat sich erledigt, ich habe es herraus gefunden wie es funktioniert.

Aber ich habe jetzt ein anderes problem, nämlich möchte ich eine statistische auswertung programmieren, dass man beliebig viele zahlen, abgetrennt mit einem kommas in ein JTextfield reinpacken kann. Aber wie mache ich das? Wie kann ich programmieren, dass er automatisch jeder zahl nach dem komma einer variablen zuordnet und dass er sieht, dass ich da so und so viele Zahlen eingetippt habe.
 

jgh

Top Contributor
du musst dir natürlich die Eingabe aus deinem Textfeld holen:

Java:
String s = "7,7,0,7,8,1,8,1,4,5,5,3,1,12,3,3,3,3,3,3,3,3,3";
		String[] zahlen = s.split(",");
		for (int i = 0; i < zahlen.length; i++) {
			System.out.println(zahlen[i]);
		}
		System.out.println("Ges=" + zahlen.length);
 

jgh

Top Contributor
bei dir muss das natürlich irgendwie so heißen...:
Java:
 String[] zahlen = irgendeinJTextfield1.getText().split(",");
irgendEinLabel.setText("Es wurden "+zahlen.length+ " eingegeben."
und was du dann damit machst, musst du dir halt überlegen...

und das sys.out ist natürlich nur fürs testen...in der gui macht das keinen sinn.
 

lukatoni92

Mitglied
vielen, vielen Dank =)

eine Frage hätte ich da noch, da ich denke, das du dich sehr gut damit auskennst.

ich will einen lange text im JTextfield ausgeben sowas wie ein Sparvertrag mit einer schleife,
wo man die Jahre eingibt, kapital, zinssatz,

und dann soll er mir, jedes jahr daraus geben, bis wohin die schleife geht.

Leider zeigt er mir bei jahren nur, das jahr was ich eingeben habe, er sollte es aber so zeigen:
Jahr1 ... ... ..
jahr2 .. .. ..
jahr3.. .. .. ..

stattdessen zeigt er es mir so: jahr 3
 
M

Marcinek

Gast
Du solltest dafür eine TextArea verwenden und dann die append Methode nutzen und nicht setText(),

Gruß,
Martin
 

jgh

Top Contributor
so aus dem Kopf...wenn du eine Methode [c]setText("was auch immer...");[/c] auf das JTextfield aufrufst, löscht er halt immer alles was davor drinnen stand und nimmt nur den letzten Eintrag.

Meist wird das über ein StringBuilder gelöst.

Java:
StringBuilder sb = new StringBuilder();
sb.append("1.Jahr \txyZinsen, was auch immer noch\n";
sb.append("2.Jahr usw...");

und wenn du fertig bist, [c]textfield.setText(sb.toString());[/c]
 

lukatoni92

Mitglied
vielen dank für eure Hilfe.

du wirst mich jetzt bestimmt für dumm erklären, aber ich schaffe es nicht es in double zu konvertieren:

Java:
String[] zahlen = jTextField1zahlen.getText().split(",");


                          
		 //hier zeig der mir rot	
                   double nummer = Double.parseDouble(zahlen);

LG
 

jgh

Top Contributor
Java:
 for (int i = 0; i < zahlen.length; i++) {
 double nummer = Double.parseDouble(zahlen[i]);
        }

bedenke dabei aber nun, dass die Variable nummer am Ende der for-Schleife nur auf den letzten Eintrag zeigt und auch nur innerhalb der for-Schleife sichtbar ist.
[edit] das ist ein Array von Strings, wahrscheinllich ist es sinnvoller, dir ein Array von doublen zu generieren...also irgendwie so:

Java:
double[] nummers = new double[zahlen.length];
for (int i = 0; i < zahlen.length; i++) {
 nummers[i] = Double.parseDouble(zahlen[i]);
        }
[/edit]
 
Zuletzt bearbeitet:

lukatoni92

Mitglied
Dankeschöön, aber warum die schleife, ich arbeite die ganze zeit dran, aber der will mir nicht alle zahlen auf einmal ausgeben, ich bin schon am verzweifeln, alles klappt nicht so wie ich es will xD

Ich will das statistische maximum aus der beleibig eingegebenen Zahlen reihe heraus bekommen aber es will einfach nicht xD vielleicht bin ich auch nur ein bisschen verpeilt, sorry ich nerve dich bestimmt schon, aber ich weiß nicht was ich sonst machen soll, da googel mir auch nicht wirklich antworten auspuckt.

Java:
Private void jButton1auswahlActionPerformed(ActionEvent evt) {
		if(jRadioButton1Maximum.isSelected())
		{
			 String []zahlen = jTextField1zahlen.getText().split(",");
			 double []nummers = new double[zahlen];
			 
			 double Q = Math.max(zahlen.length);
			 
			    String  diskri = df.format(Q);
			    jTextField1ergebnis.setText(diskri);
			 	
	}

irgentwie ziemlich viel rot xD

LG Toni
 
M

Marcinek

Gast
Ich befürchte du hast elementare Lücken, die ein Buch sicher beheben würde, wenn man es den lesen würde:

Beispiel: double []nummers = new double[zahlen];

Was soll das bedeuteuten?

Ich möchte also ein Array, also mehrere Kisten aufbauen und sagen da kommen nun Kommazahlen rein.

[][][][][][][][][][]

So die Anzahl muss ich vorgeben bei einem Array. Zum Beispiel 10.

also schreibe ich:

double []nummers = new double[10];

Nun was ist "zahlen"?

Zahlen ist auch ein Array. [][][][][][][][][]. Was bedeutet nun

double []nummers = new double[ [][][][][][][][][] ];

Wie soll nun Java darauf kommen, dass du die Anzahl meinst? Das musst du schon hinschreiben.

Ähnlich verhält es sich mit deinem anderen Code. Programmieren ist kein Ratespiel.
 

Ähnliche Java Themen


Oben