Zum Inhalt springen

GUI erstellen als Anfänger


Empfohlene Beiträge

Geschrieben (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_B) { 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_B) { 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 von flashpixx
Code-Tags
Geschrieben (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 von jaluko95

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...