Erste Schritte 2 Codes zusammen fügen / Label in JFrame

Tarnpflanze

Mitglied
Hallo

Ich bin sehr neu im Programmieren von Java und möchte daher einen Taschenrechner programmieren. Als ich auf Youtube nach einem Video geschaut habe, welches mir zeigt, wie ich ein Rechteck zeichnen kann, (Damit die Ausgabe schöner dargestellt wird) habe ich diesen Text kopiert (Ich weiss das ist doof. aber es geht ja nicht um das :D) aber ich kann nun nur das Rechteck in einem Fenster anzeigen lassen, oder meine Knöpfe, welche noch keine Funktion haben.

Meine Frage lautet: Wie kann ich die folgende Codes so zusammen fügen, dass die Knöpfe und das gezeichnete zusammen auf einem Fenster zu sehen ist?

Die Main:
Java:
import javax.swing.JFrame;
import static javax.swing.JFrame.EXIT_ON_CLOSE;

public class Taschenrechner {

    public static void main(String[] args) {
    
            JFrame fenster = new Fenster();
            fenster.setSize(300, 400);
            fenster.setDefaultCloseOperation(EXIT_ON_CLOSE);
            fenster.setLocationRelativeTo(null);
            fenster.setTitle("Taschenrechner");
            fenster.setResizable(false);
            fenster.setLayout(null);
            fenster.setVisible(true);
    }
    
}


Das Fenster mit den Knöpfen:
Java:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Label;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Fenster extends JFrame{

    public Fenster(){

        JLabel ausgabeLabel;
        JButton nr1, nr2, nr3, nr4, nr5, nr6 ,nr7, nr8, nr9, nr0, punkt, negation,
                clear, ausrechnen, addition, subtraktion, multiplikation, division,
                klammerAuf, klammerZu, zeichenLoeschen, PI, wurzel, quadrieren;
        JPanel buttons;
        
        buttons = new JPanel();
        buttons.setLayout(null);
        buttons.setBounds(40, 170, 215, 175);
        add(buttons);
        
        nr1 = new JButton("1");
        nr1.setBounds(0, 90, 50, 25);
        nr1.setBackground(Color.lightGray);
        buttons.add(nr1);
        
        nr2 = new JButton("2");
        nr2.setBounds(55, 90, 50, 25);
        nr2.setBackground(Color.lightGray);
        buttons.add(nr2);
        
        nr3 = new JButton("3");
        nr3.setBounds(110, 90, 50, 25);
        nr3.setBackground(Color.lightGray);
        buttons.add(nr3);
        
        nr4 = new JButton("4");
        nr4.setBounds(0, 60, 50, 25);
        nr4.setBackground(Color.lightGray);
        buttons.add(nr4);
        
        nr5 = new JButton("5");
        nr5.setBounds(55, 60, 50, 25);
        nr5.setBackground(Color.lightGray);
        buttons.add(nr5);
        
        nr6 = new JButton("6");
        nr6.setBounds(110, 60, 50, 25);
        nr6.setBackground(Color.lightGray);
        buttons.add(nr6);
        
        nr7 = new JButton("7");
        nr7.setBounds(0, 30, 50, 25);
        nr7.setBackground(Color.lightGray);
        buttons.add(nr7);
        
        nr8 = new JButton("8");
        nr8.setBounds(55, 30, 50, 25);
        nr8.setBackground(Color.lightGray);
        buttons.add(nr8);
        
        nr9 = new JButton("9");
        nr9.setBounds(110, 30, 50, 25);
        nr9.setBackground(Color.lightGray);
        buttons.add(nr9);
        
        nr0 = new JButton("0");
        nr0.setBounds(0, 120, 50, 25);
        nr0.setBackground(Color.lightGray);
        buttons.add(nr0);
        
        punkt = new JButton(".");
        punkt.setBounds(55, 120, 50, 25);
        punkt.setBackground(Color.lightGray);
        buttons.add(punkt);
        
        negation = new JButton("+/-");
        negation.setBounds(110, 120, 50, 25);
        negation.setBackground(Color.lightGray);
        buttons.add(negation);
        
        clear = new JButton("C");
        clear.setBounds(0, 0, 50, 25);
        clear.setBackground(new Color(255, 204, 153));
        buttons.add(clear);
        
        ausrechnen = new JButton("=");
        ausrechnen.setBounds(165, 120, 50, 25);
        ausrechnen.setBackground(new Color(102, 153, 255));
        buttons.add(ausrechnen);
        
        addition = new JButton("+");
        addition.setBounds(0, 150, 50, 25);
        addition.setBackground(new Color(102, 153, 255));
        buttons.add(addition);
        
        subtraktion = new JButton("-");
        subtraktion.setBounds(55, 150, 50, 25);
        subtraktion.setBackground(new Color(102, 153, 255));
        buttons.add(subtraktion);
        
        multiplikation = new JButton("*");
        multiplikation.setBounds(110, 150, 50, 25);
        multiplikation.setBackground(new Color(102, 153, 255));
        buttons.add(multiplikation);
        
        division = new JButton("/");
        division.setBounds(165, 150, 50, 25);
        division.setBackground(new Color(102, 153, 255));
        buttons.add(division);
        
        klammerAuf =  new JButton("(");
        klammerAuf.setBounds(55, 0, 50, 25);
        klammerAuf.setBackground(new Color(255, 204, 255));
        buttons.add(klammerAuf);
        
        klammerZu =  new JButton(")");
        klammerZu.setBounds(110, 0, 50, 25);
        klammerZu.setBackground(new Color(255, 204, 255));
        buttons.add(klammerZu);
        
        zeichenLoeschen = new JButton("<<");
        zeichenLoeschen.setBounds(165, 0, 50, 25);
        zeichenLoeschen.setBackground(new Color(219, 219, 112));
        buttons.add(zeichenLoeschen);
        
        PI = new JButton("PI");
        PI.setBounds(165, 30, 50, 25);
        PI.setBackground(new Color(102, 255, 153));
        buttons.add(PI);
        
        wurzel = new JButton("Wl");
        wurzel.setBounds(165, 60, 50, 25);
        wurzel.setBackground(new Color(153, 204, 204));
        buttons.add(wurzel);
        
        quadrieren = new JButton("Qd");
        quadrieren.setBounds(165, 90, 50, 25);
        quadrieren.setBackground(new Color(153, 204, 204));
        buttons.add(quadrieren);
    }
}

Das Fenster mit den gezeichneten Dingen:
Java:
import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JLabel;


public class Zeichnen extends JFrame{
    
    Label ausgabeLabel;
    
    public Zeichnen(){
        
        super("Zeichnen");
        setLayout(null);
        ausgabeLabel = new Label();
        ausgabeLabel.setBounds(0, 0, 300, 400);
        add(ausgabeLabel);
    }
    
    private class Label extends JLabel{
        
        @Override
        protected void paintComponent(Graphics g){
            super.paintComponent(g);
            g.setColor(Color.GREEN);
            g.fillRect(40, 25, 100, 50);
        }
    }
}



Das ist mein aller erster Post hier. Also hoffe ich, das ich alles richtig mache hier.

Ich erwähne nochmals mein Problem: Wenn ich das Programm starte, dann öffnet sich das Fenster mit den Knöpfen und nix weiteres. Wenn ich in der Main "JFrame fenster = new Fenster();" umschreibe zu "JFrame fenster = new Zeichnen();" dann öffnet sich das gezeichnete. Aber ich möchte das beides in einem ist.

Einige Tipps nebenbei währen auch cool

Vielen Dank im Voraus
eure Tarnpflanze :)
 

Gucky

Top Contributor
Wenn du das nicht weißt dann tut es mir leid dir das sagen zu müssen aber dann solltest du erstmal Abstand vom Zeichnen nehmen.

Du musst eine Klasse von JPanel erben lassen und dort paintComponent(Graphics) überschreiben. Darin kannst du zeichnen.

Also brauchst du diese Teile:
Java:
[B]ausgabeLabel = new Label();
        ausgabeLabel.setBounds(0, 0, 300, 400);
        add(ausgabeLabel);[/B]


//...


private class Label extends JLabel{
 
        @Override
        protected void paintComponent(Graphics g){
            super.paintComponent(g);
            g.setColor(Color.GREEN);
            g.fillRect(40, 25, 100, 50);
        }
    }

Der erste Teil wird vom Konstruktor aufgerufen und der zweite Teil kommt als lokale Klasse in die Klasse, die von JFrame erbt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Darstellung von Datum - Codes richtig? Java Basics - Anfänger-Themen 2
A Rekursive Implementation eines Codes Java Basics - Anfänger-Themen 4
S Den Minimumberechnen 2 codes vergleichen Java Basics - Anfänger-Themen 4
S Allgemeine Java Codes lesen und verstehen Java Basics - Anfänger-Themen 7
M Benutzereingabe eines Codes verbessern Java Basics - Anfänger-Themen 3
A Variablen Definitionen zu Codes und Funktionen. Java Basics - Anfänger-Themen 3
C Codes einrücken Java Basics - Anfänger-Themen 5
M Compiler-Fehler Fehler beim Ausführen des Codes Java Basics - Anfänger-Themen 25
L Codes Java Basics - Anfänger-Themen 6
Y "Optimierung" des Codes Java Basics - Anfänger-Themen 14
J Kann mir bitte mal jemand diese Codes erklären? Java Basics - Anfänger-Themen 19
Y Erste Schritte Verknüpfung zweier JAVA-Codes Java Basics - Anfänger-Themen 8
M Aufbessern meines Codes Java Basics - Anfänger-Themen 11
Kenan89 Wo sind die Java Standard Library Source Codes zu finden? Java Basics - Anfänger-Themen 5
C ASCII CODES in Linux anders als auf Windows? Java Basics - Anfänger-Themen 4
C ASCII Codes in Buchstaben umwandeln Java Basics - Anfänger-Themen 2
M Java codes bedeutung Java Basics - Anfänger-Themen 9
A Beschreibung des Codes Java Basics - Anfänger-Themen 2
N Eclipse und ascii codes, welchen wählen? Java Basics - Anfänger-Themen 3
G Dringende Frage bzgl. meines Codes Java Basics - Anfänger-Themen 30
P ImageIcon zusammen mit Fenstergrösse skalieren Java Basics - Anfänger-Themen 3
J Hallo zusammen , was macht diese Methode hier genau? Java Basics - Anfänger-Themen 3
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
Bluedaishi for schleife um Dateien wieder zusammen zu fügen Java Basics - Anfänger-Themen 11
A Klassenvariablen zusammen fassen Java Basics - Anfänger-Themen 5
J Bits zusammen zählen Java Basics - Anfänger-Themen 4
H Erste Schritte Einfaches Programm und GUI zusammen bringen Java Basics - Anfänger-Themen 3
R Den übernächsten Eintrag in der Liste vergleichen und zusammen fassen Java Basics - Anfänger-Themen 11
K Arrays zusammen addieren - brauche Denkanstoß:) Java Basics - Anfänger-Themen 4
S process - getInputStream und getErrorStream zusammen legen Java Basics - Anfänger-Themen 10
K Stunden zusammen Rechnen Java Basics - Anfänger-Themen 4
M Wie setzt sich eine Klasse zusammen? Java Basics - Anfänger-Themen 16
H 2 arrays zusammen sortieren Java Basics - Anfänger-Themen 3
G Wie 2 Tasten zusammen drücken? Java Basics - Anfänger-Themen 4
F JSP und HTML-Formular zusammen Java Basics - Anfänger-Themen 3
T Pakete und "-cp_ funktionieren net zusammen Java Basics - Anfänger-Themen 2
C Zip: Wie zipe ich mehrere Dateien zusammen? Java Basics - Anfänger-Themen 7
J Bestimmte Anzahl Zeichen aneinander fügen Java Basics - Anfänger-Themen 9
E Elemente einer (öffentlichen) ArrayList in einer anderen Klasse zu einer ArrayList dazu fügen. Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben