ich hab ewigkeiten nix mit java gemacht und hab mir überlegt ich könnte, um wieder reinzukommen, ein kleines programm schreiben, was werte für einfache geometrische figuren errechnet.
ich erzeuge dann für jede form, die ich berechnen können will eine eigene klasse, in welcher dann auch wieder die formaln drinstehen sollen, mit den ich die berechnung durchführen will.
beim quadrat is es ja noch rel. einfach, da brauch ich ja nur eine seite vorgeben oder errechnen und dann kann ich den rest ausrechnen lassen, beim rechteck(und fast allen anderen formen/figuren) hingegen brauch ich ja schonmal zwei werte mindestens.
der mathematische aspekt der ganzen geschichte is kein problem, sondern eher die umsetzung des ganzen.
hatte mir überlegt input-felder zu nehmen und nur einen berechnen-button drunter zu setzen.
problem dabei ist, daß ich ja fehler abfangen muss/möchte.
wie gehe ich denn am besten bei so einer sache vor?
meine erste idee war zuerst mal alle inputfelder darauf zu überprüfen, ob ALLE leer sind und wenn dem so ist eine meldung auszugeben.
doch wie läuft des mit der restlichen aktion?
ich muss ja wissen welcher wert eingegeben wurde, um dann die richtige funktion zu benutzen, was ich jetzt habe ist irgendwie redundant (wie ich finde) und erzeugt auch typische "fehler" die nur (taschen)rechner machen zB: ich geb bei der fläche des quadrats 43 an und nach klicken auf den button steht da 42.999999999 (neun neuntel sind ja auch wieder ein ganzes, nur kapieren das die meisten rechner net^^)
hier mal der quelltext vom button:
und hier ist was ich bisher fabriziert habe als JAR-File: geosoft_part.jar
das mit der diagonalen hab ich noch net mit einer funktion hinterlegt, weil mir dieser fehler bei der fläche aufgefallen ist....
ich würd gern von euch wissen, wie ich am besten vorgehen soll, damit ich das ganze benutzerfreundlich gestalten kann ohne redundant zu arbeiten.
letztlich weiß ich (und auch das programm) nicht welche werte gegeben sind und welche gesucht werden!
wenn mir jemand den richtigen weg weisen könnte, wäre ich sehr erfreut
ich erzeuge dann für jede form, die ich berechnen können will eine eigene klasse, in welcher dann auch wieder die formaln drinstehen sollen, mit den ich die berechnung durchführen will.
beim quadrat is es ja noch rel. einfach, da brauch ich ja nur eine seite vorgeben oder errechnen und dann kann ich den rest ausrechnen lassen, beim rechteck(und fast allen anderen formen/figuren) hingegen brauch ich ja schonmal zwei werte mindestens.
der mathematische aspekt der ganzen geschichte is kein problem, sondern eher die umsetzung des ganzen.
hatte mir überlegt input-felder zu nehmen und nur einen berechnen-button drunter zu setzen.
problem dabei ist, daß ich ja fehler abfangen muss/möchte.
wie gehe ich denn am besten bei so einer sache vor?
meine erste idee war zuerst mal alle inputfelder darauf zu überprüfen, ob ALLE leer sind und wenn dem so ist eine meldung auszugeben.
doch wie läuft des mit der restlichen aktion?
ich muss ja wissen welcher wert eingegeben wurde, um dann die richtige funktion zu benutzen, was ich jetzt habe ist irgendwie redundant (wie ich finde) und erzeugt auch typische "fehler" die nur (taschen)rechner machen zB: ich geb bei der fläche des quadrats 43 an und nach klicken auf den button steht da 42.999999999 (neun neuntel sind ja auch wieder ein ganzes, nur kapieren das die meisten rechner net^^)
hier mal der quelltext vom button:
Code:
btn_quad_calc.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
Quadrat quad = new Quadrat();
NumberFormat nf = new DecimalFormat("0.000");
if(seite_a.getText().equals("") && flaeche_A.getText().equals("") && umfang_U.getText().equals("") && diagonale_d.getText().equals("")){
{JOptionPane.showMessageDialog(null, "Gib bitte in einem der Textfelder\neine Zahl im Format #.### an", "FEHLER", JOptionPane.OK_OPTION);}
}else{
if(!seite_a.getText().equals("") && seite_a.getText().matches("^([\\d]*[.]?[\\d]*)$")){
seitenlaenge = Double.parseDouble(seite_a.getText());
flaeche_A.setText(""+ quad.a_holFlaeche(seitenlaenge));
umfang_U.setText("" + quad.a_holUmfang(seitenlaenge));
diagonale_d.setText("" +quad.d_holSeite(seitenlaenge));
}
if(!flaeche_A.getText().equals("") && flaeche_A.getText().matches("^([\\d]*[.]?[\\d]*)$")){
flaeche = Double.parseDouble(flaeche_A.getText());
seite_a.setText(""+ quad.A_holSeite(flaeche));
umfang_U.setText("" + quad.a_holUmfang(quad.A_holSeite(flaeche)));
diagonale_d.setText("" +quad.d_holSeite(quad.A_holSeite(flaeche)));
}
if(!umfang_U.getText().equals("") && umfang_U.getText().matches("^([\\d]*[.]?[\\d]*)$")){
umfang = Double.parseDouble(umfang_U.getText());
flaeche_A.setText(""+ quad.a_holFlaeche(quad.U_holSeite(umfang)));
seite_a.setText(""+ quad.U_holSeite(umfang));
diagonale_d.setText("" +quad.d_holSeite(quad.U_holSeite(umfang)));
}
if(!diagonale_d.getText().equals("") && diagonale_d.getText().matches("^([\\d]*[.]?[\\d]*)$")){
diagonale = Double.parseDouble(diagonale_d.getText());
}
ergseitenlaenge = quad.A_holSeite(flaeche);
ergflaeche = quad.a_holFlaeche(seitenlaenge);
ergumfang = quad.a_holUmfang(seitenlaenge);
ergdiagonale = quad.d_holSeite(seitenlaenge);
String erg_seite = "Seitenlänge: " + ergseitenlaenge +
"\nFläche: " + ergflaeche+
"\nUmfang: " + ergumfang +
"\nDiagonale: " + ergdiagonale;
System.out.println(erg_seite);
}
// double flaeche = Double.parseDouble(flaeche_A.getText());
// double umfang = Double.parseDouble(umfang_U.getText());
// double diagonale = Double.parseDouble(diagonale_d.getText());
}});
und hier ist was ich bisher fabriziert habe als JAR-File: geosoft_part.jar
das mit der diagonalen hab ich noch net mit einer funktion hinterlegt, weil mir dieser fehler bei der fläche aufgefallen ist....
ich würd gern von euch wissen, wie ich am besten vorgehen soll, damit ich das ganze benutzerfreundlich gestalten kann ohne redundant zu arbeiten.
letztlich weiß ich (und auch das programm) nicht welche werte gegeben sind und welche gesucht werden!
wenn mir jemand den richtigen weg weisen könnte, wäre ich sehr erfreut