problem beim zeichen im JFrame

Status
Nicht offen für weitere Antworten.

hodenfux

Mitglied
Also ich habe eine Panel klasse:

Java:
import java.awt.*;
import javax.swing.*;

class myPanel extends JPanel 
{

        myPanel()
        {
            super();
        }
        
        public void zeichne()
        {
            repaint();
        }
        
        @Override
           public void paint(Graphics g) {
               super.paint(g);
               g.setColor(Color.RED);
               g.fillOval(10, 10, 100, 100);
               g.drawLine(50,100,20,30);
               // oder was auch immer
            }
        }

und mit dieser mag ich nun in der frame klasse was gezeichnet haben , aber ich bekomm nur ein leeres weißes fenster zu sehen

Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.text.NumberFormat;


import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;

import java.awt.*;
import javax.swing.*;




public class FENSTER extends JFrame {

    public static void main(String[] args) 
    {
        FENSTER fenster = new FENSTER(1,1,800,600);
    }
    
    //---------------Attribute------------------------
   
    //JButton     startButton;
    myPanel panel;
        
    //----------------Methoden-----------------------
    
    public FENSTER(int x, int y, int breite , int hoehe)
    {
        this.setLayout(null);
        
        this.setBounds(x, y, breite, hoehe);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //Beispiel Button
        //startButton = erstelleButton("Start",650,500,100,50,this);
        
        panel = new myPanel();
        

        panel.zeichne();
        this.add(panel);
        
        //this.pack();
        this.setVisible(true);
    }
 

Michael...

Top Contributor
Hierzu zwei Anmerkungen:
wenn man ein NullLayout verwendet, muss man m.W. die Größe und Position des Panels selbst definieren
bei JPanel bzw. Swing-Komponenten überschreibt man die paintComponent nicht die paint-Methode
 

sayang

Aktives Mitglied
Hi,

da du die paintComponent-Methode überschreibst, solltest du mit setSize(new java.awt.Dimension(int width, int height)) festlegen, welche Größe das Panel hat. Da du das hier nicht tust, ist die Größe 0 x 0.
Da du ferner das Null-Layout verwendest, siehst du quasi nicht, dass das Panel zwar auf dem Frame liegt, aber eben keine Größe hat.

Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;


public class MyPanel extends JPanel {

	public MyPanel() {
		super();
		setSize(new Dimension(400, 400));
	}
	
	public void paintComponent(Graphics g) {
        g.setColor(Color.RED);
        g.fillOval(10, 10, 100, 100);
        g.setColor(Color.BLACK);
        g.drawLine(50,100,20,30);
        // oder was auch immer
     }

	public static void main(String[] args) {
		JFrame frame = new JFrame("test");
		frame.setBounds(10, 10, 500, 500);
		frame.setLayout(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().add(new MyPanel());
		frame.setVisible(true);
	}
}

Lg
sayang
 

icarus2

Top Contributor
Ich würde noch die paintComponent-Methode der Superklasse aufrufen, so dass alles aufgeräumt wird und erst dann neu gezeichnet

[Java]
public void paintComponent(Graphics g) {
super.paintComponent(g);

g.setColor(Color.RED);
g.fillOval(10, 10, 100, 100);
g.setColor(Color.BLACK);
g.drawLine(50,100,20,30);
// oder was auch immer
}
[/Java]
 

hodenfux

Mitglied
so danke die variante funktioniert super

jetzt wollte ich statische zeichen funktionen in die frame klassen einbauen doch irgentwie
funktioniert das nicht hier mal der code:

Java:
import java.awt.*;
import javax.swing.*;

class myPanel extends JPanel 
{
        static Graphics gra;

        myPanel()
        {
            super();
            setSize(new Dimension(400, 400));
            repaint();

        }
        
       
        public void paintComponent(Graphics g)
        {
            if(gra==null){this.gra = g;}
            
            g.setColor(Color.RED);
            g.fillOval(10, 10, 100, 100);
            g.setColor(Color.BLACK);
            g.drawLine(50,100,20,30);
       
        }
        
        public static void zeichneRechteck(int x , int y , int breite , int hoehe , Color farbe)
        {
            if(gra==null)
            {

            }
            else
            {
                gra.setColor(farbe);
                gra.fillRect(x,y,breite,hoehe);
            }
        }

}
 

Schandro

Top Contributor
Falscher Ansatz.

1. Regel beim malen: Du darfst auf ein JPanel NUR innerhalb der paintComponent malen, und auch nur mit dem Graphics-Object was die paintComponent-Methode direkt als Parameter bekommt!

Beispiel wie mans macht:
Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JPanel;

public class MyPanel extends JPanel {
	
	private List <Rectangle> rectangles = new ArrayList <Rectangle> ();

	public MyPanel() {
		setSize(new Dimension(400, 400));
	}

	public void paintComponent(Graphics g) {
		super.paintComponent(g);

		g.setColor(Color.RED);
		g.fillOval(10, 10, 100, 100);
		g.setColor(Color.BLACK);
		g.drawLine(50, 100, 20, 30);
		
		for(int i=0;i<rectangles.size();++i){
			Rectangle rec = rectangles.get(i);
			g.drawRect(rec.x,rec.y,rec.width,rec.height);
		}

	}

	public void zeichneRechteck(int x, int y, int breite, int hoehe){
		zeichneRechteck(new Rectangle(x,y,breite,hoehe));
	}
	public void zeichneRechteck(Rectangle rectangle){
		rectangles.add(rectangle);
		repaint();
	}

}
Du kannst dann auch ne Methode schreiben, die ein Rectangle wieder löscht.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Problem beim Zeichen von Inhalten Java Basics - Anfänger-Themen 4
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
C Methoden Problem beim Speichern von Variablen Java Basics - Anfänger-Themen 1
F Problem beim entfernen von mehreren Listenelementen auf einmal (Programmierung des Spiels Arschloch) Java Basics - Anfänger-Themen 1
B Problem beim grundsätzlichen Verständnis bei Rekursion mit 2-dimensionalen Array Java Basics - Anfänger-Themen 6
E Datentypen Problem beim Speichern von enum. Java Basics - Anfänger-Themen 10
A Problem beim Deklarieren von einem BOOLEAN Java Basics - Anfänger-Themen 4
B Gleicher Prozess starten und stoppen (Problem beim Stoppen) Java Basics - Anfänger-Themen 5
DestinatioN Problem beim splitten eines Satzes in Wörter und die Wörter in Buchstaben Java Basics - Anfänger-Themen 2
B Problem beim Angeben einer Eingabe Java Basics - Anfänger-Themen 12
J Encoding Problem beim Einlesen einer txt Datei mit Umlauten Java Basics - Anfänger-Themen 3
R Problem beim Wochenplan (Datum,Wochentag) Java Basics - Anfänger-Themen 30
D Problem beim umwandeln eines Strings in eine Dzezimalzahl Java Basics - Anfänger-Themen 6
A Compiler-Fehler Problem beim einbinden der applet Klasse Java Basics - Anfänger-Themen 2
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
C Problem beim laden eines BufferedImage Java Basics - Anfänger-Themen 2
D Problem beim Lesen einer txt-Datei Java Basics - Anfänger-Themen 8
fLooojava Bluetooth Projekt - Problem beim mehrmaligen Senden Java Basics - Anfänger-Themen 5
E Problem beim Übergeben von Parameter an Methode Java Basics - Anfänger-Themen 2
Z Problem beim Lesen und Schreiben einer Datei Java Basics - Anfänger-Themen 10
R Problem beim erstellen eines neuen Klassenobjekts Java Basics - Anfänger-Themen 2
F Input/Output Problem beim einlesen eines Strings Java Basics - Anfänger-Themen 3
J Problem beim auslesen von Int Wert aus YML-Datei Java Basics - Anfänger-Themen 6
P Problem beim Abschluss im Kompositum Java Basics - Anfänger-Themen 3
M Problem mit null pinterexception beim laden von Bildern Java Basics - Anfänger-Themen 20
K Problem beim Array aufruf Java Basics - Anfänger-Themen 4
J Problem beim ausführen in cmd.exe Java Basics - Anfänger-Themen 4
J Variablen Problem beim einlesen einer Zahl Java Basics - Anfänger-Themen 7
A Problem beim Compilieren Java Basics - Anfänger-Themen 11
J Problem beim Fenster Java Basics - Anfänger-Themen 4
tux20 Problem beim Schreiben von List to File Java Basics - Anfänger-Themen 2
M Problem beim Compilieren Java Basics - Anfänger-Themen 14
Maxim6394 Problem beim Abspielen von Sounds Java Basics - Anfänger-Themen 8
S Problem beim ersten compilieren überhaubt Java Basics - Anfänger-Themen 43
H Problem beim lesen des InputStreams von einem Subprozess Java Basics - Anfänger-Themen 4
Luk10 Problem beim .jar Datei erstellen Java Basics - Anfänger-Themen 19
L Problem beim Ausführen Java Basics - Anfänger-Themen 40
A Problem beim einfügen in eine Datenbank Java Basics - Anfänger-Themen 2
E Problem beim Programmieren eines Kartenspiels Java Basics - Anfänger-Themen 3
A Problem beim Ausführen einer .jar datei auf externen System Java Basics - Anfänger-Themen 5
M Problem beim compilieren Java Basics - Anfänger-Themen 6
JAVAnnik problem beim lvl laden Java Basics - Anfänger-Themen 15
L Problem beim Einlesen einer Datei in einen String Java Basics - Anfänger-Themen 12
W Problem beim erstellen eines Tests Java Basics - Anfänger-Themen 16
JAVAnnik Problem beim Objekt bewegen Java Basics - Anfänger-Themen 20
A Erstes Programm - Problem beim Ausführen als jar Java Basics - Anfänger-Themen 3
S Problem beim Speichern und Laden von Daten Java Basics - Anfänger-Themen 13
B Problem beim Abspielen einer Videodatei Java Basics - Anfänger-Themen 4
S Problem beim Erstellen eines Scanner-Objekts Java Basics - Anfänger-Themen 7
W Problem beim CSV-Import Java Basics - Anfänger-Themen 5
M Datentypen Problem beim zusammenstellen eines Abfrage-Strings Java Basics - Anfänger-Themen 3
K Collections Problem beim import von Packages Java Basics - Anfänger-Themen 10
S Problem beim Kompilieren - cannot find symbol - constructor() Java Basics - Anfänger-Themen 12
B Problem beim Email versenden mit Javamail Java Basics - Anfänger-Themen 5
H Problem beim Anfang von Java (Java Editor) Java Basics - Anfänger-Themen 2
I Problem beim Schreiben eines ersten Programms Java Basics - Anfänger-Themen 3
D Problem beim Zeichnen von "Das Haus vom Nikolaus" Java Basics - Anfänger-Themen 10
D Problem beim Auslesen aus File Java Basics - Anfänger-Themen 3
A Problem beim Splitten eines Strings Java Basics - Anfänger-Themen 10
S Problem mit ObjectInputStream beim Einlesen von LinkedList Java Basics - Anfänger-Themen 3
J Problem beim Löschen von elementen aus einer ArrayList Java Basics - Anfänger-Themen 5
V Problem beim Programm laden Java Basics - Anfänger-Themen 5
H Problem beim kompilieren Java Basics - Anfänger-Themen 3
C ActionListener problem beim starten von programmen Java Basics - Anfänger-Themen 3
4 OOP Problem beim Speichern verschiedener Klassen in verschiedenen Dateien Java Basics - Anfänger-Themen 25
T Problem beim Returnwert einer Methode Java Basics - Anfänger-Themen 12
M line.separator: Problem beim Lesen einer Datei Java Basics - Anfänger-Themen 11
Miladriel Problem beim Neuzeichnen nach deiconify Java Basics - Anfänger-Themen 9
R Problem beim Ausführen von Java-PGM aus der shel Java Basics - Anfänger-Themen 3
G Problem beim Sortieren einer Liste Java Basics - Anfänger-Themen 20
M Problem beim Ereignishandling mit Menü Java Basics - Anfänger-Themen 2
F Problem beim Objekteaufruf... Java Basics - Anfänger-Themen 4
E BlockChallenge: Problem beim löschen der Blöcke Java Basics - Anfänger-Themen 3
H Problem beim Verkürzen von Programm Java Basics - Anfänger-Themen 3
T Problem beim Werfen und Fangen von Exceptions Java Basics - Anfänger-Themen 2
M Problem beim Zugriff auf Daten GUI + Startklasse Java Basics - Anfänger-Themen 4
P Problem beim Thread Java Basics - Anfänger-Themen 20
0 problem beim Polygon zeichnen Java Basics - Anfänger-Themen 3
V Problem beim erstellen eines ausführbaren Programs Java Basics - Anfänger-Themen 5
0 Problem beim Starten des Applets Java Basics - Anfänger-Themen 2
N Problem beim Durchsuchen einer LinkedList Java Basics - Anfänger-Themen 5
G Problem beim Programmieren von Blackjack Java Basics - Anfänger-Themen 15
R Problem beim Laden eines Images Java Basics - Anfänger-Themen 7
K Problem beim installieren des JDK 1.6+ version Java Basics - Anfänger-Themen 3
T Problem beim Konsolenstart Java Basics - Anfänger-Themen 5
C Problem beim Berechnen der Quadratwurzel Java Basics - Anfänger-Themen 3
C Problem beim nutzen von Teilprogrammen in main Java Basics - Anfänger-Themen 2
M Problem beim Zeichnen Java Basics - Anfänger-Themen 5
D Problem beim Kompilieren Java Basics - Anfänger-Themen 4
D Problem beim auslesen von TextArea Java Basics - Anfänger-Themen 3
G Problem beim Schreiben in Textdatei Java Basics - Anfänger-Themen 9
F ggT finden - problem beim qc Java Basics - Anfänger-Themen 4
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
G Habe ein Problem mit syn-Editor ( beim compilieren) Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben