jaluko95 Geschrieben 19. September 2012 Geschrieben 19. September 2012 (bearbeitet) Hey, müssen von der Schule aus ein Programm erstellen welches Flächeninhalt und Umfang vom Kreis, Dreieck, Quadrat, und Rechteck ausrechnet. Solange es ohne GUI sein muss, klappt alles wunderbar --> Für jeden Körper eine Klasse erstellt, die die passenden Methoden enthält, dann dazu die mainclass und es über die konsole laufen lassen. Aber mit GUI? Da schaffe ich es das Fenster und die Button zu erstellen. Mehr aber auch nicht. Habe es mit javax.swing bibliothek versucht. Arbeiten mit BlueJ. Wie schaffe ich es nun, dass die Methoden aufgerufen und die Werte angezeigt werden? Ich schätze mal der Quelltext wäre ganz hilfreich: import java.io.*; public class mainClass { public static void main (String argv[])throws IOException { Quadrat q1; Kreis k1; Rechteck r1; Dreieck d1; q1= new Quadrat(); k1= new Kreis(); r1= new Rechteck(); d1= new Dreieck(); String auswahl; while (true) { System.out.println("Schreibe q um den Flächenhinhalt und den Umfang eines Quadrats zu berechnen."); System.out.println("Schreibe r um den Flächenhinhalt und den Umfang eines Rechteck zu berechnen."); System.out.println("Schreibe d um den Flächenhinhalt und den Umfang eines Dreiecks zu berechnen."); System.out.println("Schreibe k um den Flächenhinhalt und den Umfang eines Kreises zu berechnen."); System.out.println("Schreibe e um den Flächenhinhalt und das Programm zu beenden."); System.out.println(" "); BufferedReader input_m = new BufferedReader (new InputStreamReader (System.in)); auswahl=input_m.readLine(); if (auswahl.equals("q")) { double tmp; String eingabe; System.out.println("Seitenlänge?"); BufferedReader input_q = new BufferedReader (new InputStreamReader (System.in)); eingabe=input_q.readLine(); tmp=Double.parseDouble(eingabe); q1.set_seitenlaenge(tmp); System.out.println("Seitenlänge: "+q1.get_seitenlaenge()+" cm"); System.out.println("Flächeninhalt: "+q1.get_flaecheninhalt()+" cm²"); System.out.println(" "); } if (auswahl.equals("r")) { double tmp_a, tmp_b; String eingabe_a,eingabe_b; System.out.println("Seitenlänge der Seite A?"); BufferedReader input_r_a = new BufferedReader (new InputStreamReader (System.in)); eingabe_a=input_r_a.readLine(); tmp_a=Double.parseDouble(eingabe_a); r1.set_seitenlaenge_a(tmp_a); System.out.println("Seitenlänge der Seite B?"); BufferedReader input_r_b = new BufferedReader (new InputStreamReader (System.in)); eingabe_b=input_r_b.readLine(); tmp_b=Double.parseDouble(eingabe_; r1.set_seitenlaenge_b(tmp_; System.out.println("Seitenlänge der Seite A: "+r1.get_seitenlaenge_a()+" cm"); System.out.println("Seitenlänge der Seite B: "+r1.get_seitenlaenge_b()+" cm"); System.out.println("Flächeninhalt: "+r1.get_flaecheninhalt()+" cm²"); System.out.println("Umfang: "+r1.get_umfang()+" cm"); System.out.println(" "); } if (auswahl.equals("d")) { double tmp_a,tmp_b,tmp_c; String eingabe_a, eingabe_b, eingabe_c; System.out.println("Seitenlänge A?"); BufferedReader input_d_a= new BufferedReader (new InputStreamReader (System.in)); eingabe_a=input_d_a.readLine(); tmp_a=Double.parseDouble(eingabe_a); d1.set_seitenlaenge_a(tmp_a); System.out.println("Seitenlänge B?"); BufferedReader input_d_b = new BufferedReader (new InputStreamReader (System.in)); eingabe_b=input_d_b.readLine(); tmp_b=Double.parseDouble(eingabe_; d1.set_seitenlaenge_b(tmp_; System.out.println("Seitenlänge C?"); BufferedReader input_d_c = new BufferedReader (new InputStreamReader (System.in)); eingabe_c=input_d_c.readLine(); tmp_c=Double.parseDouble(eingabe_c); d1.set_seitenlaenge_c(tmp_c); System.out.println("Seitenlänge der Seite A: "+d1.get_seitenlaenge_a()+" cm"); System.out.println("Seitenlänge der Seite B: "+d1.get_seitenlaenge_b()+" cm"); System.out.println("Seitenlänge der Seite C: "+d1.get_seitenlaenge_c()+" cm"); System.out.println("Konstroirbar?: "+ d1.get_konstroirbarkeit()); System.out.println("Flächeninhalt: "+d1.get_flaecheninhalt()+" cm²"); System.out.println("Umfang: "+d1.get_umfang()+" cm"); System.out.println(" "); } if (auswahl.equals("k")) { double tmp_r; String eingabe_r; System.out.println("Radius?"); BufferedReader input_k_r = new BufferedReader (new InputStreamReader (System.in)); eingabe_r=input_k_r.readLine(); tmp_r=Double.parseDouble(eingabe_r); k1.set_radius(tmp_r); System.out.println("Radius: "+k1.get_radius()+" cm"); System.out.println("Flächeninhalt: "+k1.get_flaecheninhalt()+" cm²"); System.out.println("Umfang: "+k1.get_umfang()+" cm"); System.out.println(" "); } else { System.out.println("Ungültige Eingabe! Es sind nur Zahlen erlaubt. Als Komma bitte einen Punkt setzen."); } //if (auswahl.equals("e")); //{ // System.exit(0); //} } } } [/code] Zusätzlich noch eine von den Klassen der Körper: [code] public class Dreieck { private double seitenlaenge_a,seitenlaenge_b,seitenlaenge_c; private boolean konstroirbarkeit; public boolean get_konstroirbarkeit() { return konstroirbarkeit; } public void set_seitenlaenge_a(double seite_A) { seitenlaenge_a=seite_A; } public void set_seitenlaenge_b(double seite_ { seitenlaenge_b=seite_B; } public void set_seitenlaenge_c(double seite_C) { seitenlaenge_c=seite_C; } public double get_seitenlaenge_a() { return seitenlaenge_a; } public double get_seitenlaenge_b() { return seitenlaenge_b; } public double get_seitenlaenge_c() { return seitenlaenge_c; } public double get_hoehe() { return Math.round(Math.sqrt((seitenlaenge_a*seitenlaenge_a)-(seitenlaenge_c/2)*(seitenlaenge_c/2))*100.0)/100.0; } public double get_flaecheninhalt() { return Math.round((seitenlaenge_c/2*get_hoehe())*100.0)/100.0; } public double get_umfang() { return seitenlaenge_a+seitenlaenge_b+seitenlaenge_c; } public void set_konstroirbarkeit() { if (seitenlaenge_a+seitenlaenge_b>seitenlaenge_c) { konstroirbarkeit=true; } if (seitenlaenge_a+seitenlaenge_c>seitenlaenge_ { konstroirbarkeit=true; } if (seitenlaenge_c+seitenlaenge_b>seitenlaenge_a) { konstroirbarkeit=true; } else { konstroirbarkeit=false; } } } hoffe ich verlange nicht mehr, als man darf. Bin aber echt totaler Anfänger das habe ich bisher geschafft, wenn es überhaupt so richtig ist(GUI): import javax.swing.*; import java.awt.*; public class GUI_Versuch { public void GUI_Versuch() { JFrame MainPanel = new JFrame(); Container content = MainPanel.getContentPane(); content.setLayout (new GridLayout (2, 2) ); JLabel JLabel0 =new JLabel(" Was möchten Sie berechnen?"); JLabel0.setPreferredSize( new Dimension(86 , 16) ); content.add(JLabel0); JPanel JPanel1 = new JPanel(); JPanel1.setPreferredSize (new Dimension (255, 26) ); JPanel1.setLayout(new FlowLayout() ); JButton JButton2 = new JButton("Quadrat"); JButton2.setPreferredSize( new Dimension(120, 26) ); JPanel1.add(JButton2); JButton JButton3 = new JButton("Rechteck"); JButton3.setPreferredSize(new Dimension(120, 26) ); JPanel1.add(JButton3); JButton JButton4 = new JButton("Dreieck"); JButton4.setPreferredSize(new Dimension(120,26) ); JPanel1.add(JButton4); JButton JButton5 =new JButton("Kreis"); JButton5.setPreferredSize(new Dimension (120, 26) ); JPanel1.add(JButton5); JButton JButton6 =new JButton("Beenden"); JButton6.setPreferredSize(new Dimension (240, 26) ); JPanel1.add(JButton6); content.add(JPanel1); MainPanel.setSize(278, 195); MainPanel.setVisible(true); } } liebe Grüße Bearbeitet 19. September 2012 von flashpixx Code-Tags Zitieren
flashpixx Geschrieben 19. September 2012 Geschrieben 19. September 2012 verwende bitte Code-Tags. Um die Daten der Objekte in der GUI anzuzeigen müssen diese bei der Erstellung der GUI mitgegeben werden oder eben bei entsprechenden GUI Aktion via Listener gesetzt werden Zitieren
jaluko95 Geschrieben 22. September 2012 Autor Geschrieben 22. September 2012 (bearbeitet) Vielen Dank für die Antwort :-) Wenn ich mit dem ActionListener arbeite, bekomme ich jedes mal die Fehlermeldung, dass es keine abstract class ist. Änder ich es dann um eine eine abstract class, kann ich in der MainClass keine Methode mehr aufrufen. Bearbeitet 22. September 2012 von jaluko95 Zitieren
flashpixx Geschrieben 22. September 2012 Geschrieben 22. September 2012 Wie man Fragen richtig stellt: eine Anleitung wie man Fragen erfolgreich in Usenet, Mailing Listen und Webforen stellt. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.