Component vom einem Panel löschen ?

Status
Nicht offen für weitere Antworten.

kaper28

Bekanntes Mitglied
Hallo freunde ,

Mein problem ist ist möchte einen Keis zeichnen auf einem Panel , dann es löschen danach einen größern zeichen u.s.w

Wie kann dieses Kreis denn von dem Panel löshen ? mit repaint() etwa ?
 

kaper28

Bekanntes Mitglied
ich habe mir es so gedacht ?

Code:
g.drawOval(100,100,150,150);

component löschen ...

g.drawOval(100,100,200,200);

component löschen

g.drawOval(100,100,250,250);

u.s.w

nur wie kann ich es löschen ?
 

Marco13

Top Contributor
Wenn du den Kreis RICHTIG zeichnest, ist die richtige Lösung: Ihn nicht mehr zeichnen werden (Futur 1) und repaint() aufrufen.

Code:
class Foo extends JPanel
{
    Kreis kreis = new Kreis(100,100,50);

    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        if (kreis != null) kreis.maleAuf(g);
    }

    public void dontDrawItAnymore()
    {
        kreis = null;
        repaint();
    }
}
 

Marco13

Top Contributor
(Btw.: wenn du sagst Component von einem JPanel löschen, wäre das eigentlich was anderes aber dem Code nach erbt Kreis ja nicht von Component...)
 

André Uhres

Top Contributor
Erst sagst du, bevor du einen neuen malst muss der alte weg,
und jetzt willst du mehrere malen?
Beschreibe doch einfach mal, was es werden soll,
ohne darauf einzugehen, wie man es verwirklichen könnte.
 

Landei

Top Contributor
Marcos Beispiel mit meheren Kreisen:
Code:
class Foo extends JPanel
{
    List<Kreis> kreise = new ArrayList<Kreis>();

    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        for(Kreis kreis:kreise) {
           kreis.maleAuf(g);
        } 
    }

    public void addKreis(Kreis kreis)
    {
        kreise.add(kreis);
        repaint();
    }

    public void removeKreis(Kreis kreis)
    {
        kreise.remove(kreis);
        repaint();
    }

}

[edit]Komme mir schon vor wie im Kreissaal...[/edit]
 

kaper28

Bekanntes Mitglied
André Uhres hat gesagt.:
Erst sagst du, bevor du einen neuen malst muss der alte weg,
und jetzt willst du mehrere malen?
Beschreibe doch einfach mal, was es werden soll,
ohne darauf einzugehen, wie man es verwirklichen könnte.

Andre, ich will einen Kreis zeichnen und löschen und einen größeren zeichen und löschen noch einen größeren zeichen u.s w . Das Kreis soll von innen nach außen größer werden immer .Wenn ich das mit einem timer verbinde der mit gezielten abstand zeichnet dann zieht wie eine animation . Der Kreis wir dann immer größer und größer . Durch diesen timer wiederholung hat man den eindruck der Kreis werde immer weiter vergrößert.
 

André Uhres

Top Contributor
Wir können den Kreis mit drei Variablen zeichnen: x, y und d (Durchmesser).
Code:
g.drawOval(x, y, d, d);
Im Timer brauchen wir dann nur die Variablen anzupassen und repaint aufzurufen.
Der Aufruf von super.paintComponent(g) sorgt dafür, daß das Bild vor dem Neuzeichnen bereinigt wird:
Code:
@Override
protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.drawOval(x, y, d, d);
}
Der Timer könnte etwa so aussehen:
Code:
public void startAnimation() {
    javax.swing.Timer timer = new javax.swing.Timer(50, new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            if (d == 0 || d > 200) {
                x = 150;
                y = 150;
                d = 10;
            } else {
                d += 2;
                x -= 1;
                y -= 1;
            }
            repaint();
        }
    });
    timer.start();
}
 

kaper28

Bekanntes Mitglied
Code:
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JPanel;

class Foo extends JPanel { 

public int d=1;
public int x,y;
	

	public void startAnimation() { 
	    javax.swing.Timer timer = new javax.swing.Timer(500, new ActionListener() { 
	    	
	        @Override 
	        public void actionPerformed(ActionEvent e) { 
	            if ( d == 0 || d > 200) { 
	                 x = 150; 
	                y = 150; 
	                d = 10; 
	            } else { 
	                d += 2; 
	                 x -= 1; 
	                y -= 1; 
	            } 
	            repaint(); 
	        }

			
	    });
	    timer.start(); 
	}
	    protected void paintComponent(Graphics g) { 
		    super.paintComponent(g); 
	    g.drawOval(x, y,d,d); 
	
	}
	
	
	
}

so ich habe das code so erstellt wie du es gesagt hast nur ich bekomme keine zeichnung
 

Marco13

Top Contributor
Wenn du selbstständig d=1 und das delay auf 500 setzt (OHNE SELBSTSTÄNDIG NACHZUDENKEN WAS DAS ZUR FOLGE HAT!!!) darfst du nicht so ungeduldig sein....
 

André Uhres

Top Contributor
Wenn keine Zeichnung kommt, dann ist die Klasse falsch integriert.
Möglicherweise hast du die Animation gar nicht gestartet. Versuch's mal so:
Code:
import javax.swing.*;
public class FooTest {
    public static void main(final String[] args) {
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        f.setSize(400, 300);
        Foo panel = new Foo();
        f.add(panel);
        panel.startAnimation();
        f.setVisible(true);
    }
}
Ansonsten trifft das zu, was Marco13 sagte.
 

kaper28

Bekanntes Mitglied
Marco13 hat gesagt.:
Wenn du selbstständig d=1 und das delay auf 500 setzt (OHNE SELBSTSTÄNDIG NACHZUDENKEN WAS DAS ZUR FOLGE HAT!!!) darfst du nicht so ungeduldig sein....

das war ich nicht, war ein kollege ...... aber ich habe verstanden was das problem war . Ich habe d auf ein gesetzt obwohl d keine festen wert hat.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
jaleda100 Component für Suche Java Basics - Anfänger-Themen 4
P JFrame Component automatische Größe verhindern Java Basics - Anfänger-Themen 2
K Component zugreifen Java Basics - Anfänger-Themen 8
I Suche Component welches Map ähnelt Java Basics - Anfänger-Themen 11
G Konstruktor, BorderLayout nimmt Component nicht auf Java Basics - Anfänger-Themen 2
M dynamische JPanels/Component Java Basics - Anfänger-Themen 3
O Probleme mit void java.awt.Component.setBackground(Color c) Java Basics - Anfänger-Themen 2
R Swing Component in separate Klasse Java Basics - Anfänger-Themen 4
J component zugriff Java Basics - Anfänger-Themen 6
G JFrame schliesst nicht mehr wenn Component hinzugefügt Java Basics - Anfänger-Themen 3
H Exception: illegal component position Java Basics - Anfänger-Themen 5
M Einfügen eines eigenen Component Java Basics - Anfänger-Themen 21
G 2x Component Java Basics - Anfänger-Themen 3
G Component.getName() Java Basics - Anfänger-Themen 3
B Paint(Component) und externe Objekte Java Basics - Anfänger-Themen 6
D java.awt.Component - Komponententyp Java Basics - Anfänger-Themen 2
F Welche Component für eine Worklist Java Basics - Anfänger-Themen 5
A Good articles about software component technology? Java Basics - Anfänger-Themen 2
W ein JLabel oder JTextfield in einem Canvas-Kontext einbringen : geht das ? Java Basics - Anfänger-Themen 4
A 6. Element aus einem Array zurückgeben Java Basics - Anfänger-Themen 1
A Was bedeutet bei einem Array "int a [MAX][MAX];", Java Basics - Anfänger-Themen 7
I Dateien in einem .war - File durchgehen? Java Basics - Anfänger-Themen 1
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
S HashMap mehrere Keys zu einem Value Java Basics - Anfänger-Themen 3
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
F 2x 16bit Werte zu einem 32bit und dann splitten mit 0xb Java Basics - Anfänger-Themen 1
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
F Einem GIT repository ein Projekt hinzufügen Java Basics - Anfänger-Themen 1
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
J Auf einem JLabel Linien Malen Java Basics - Anfänger-Themen 1
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
Kumora ArrayIndexOutOfBoundsException bei einem Sortierverfahren Java Basics - Anfänger-Themen 2
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
J Fehlerbehandlung an einem Beispiel Java Basics - Anfänger-Themen 8
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
A Elemente in einem Array Java Basics - Anfänger-Themen 5
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
L Gridmuster in einem Array Java Basics - Anfänger-Themen 2
D spezifische Knoten in einem Baum zählen Java Basics - Anfänger-Themen 9
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
Igig1 Wie lasse ich dir Werte in einem Array zusammenrücken? Java Basics - Anfänger-Themen 4
W Methode, die mit einem Datum arbeitet? Java Basics - Anfänger-Themen 22
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
C Hilfe bei einem Anfängerprojekt Java Basics - Anfänger-Themen 25
U Char zu einem String machen Java Basics - Anfänger-Themen 1
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
S Längster Pfad zwischen zwei Vertices in einem Graph Java Basics - Anfänger-Themen 3
I Upload File zu einem Webservice Java Basics - Anfänger-Themen 17
Naxon89 Input/Output Ein PDF in einem BLOB umwandeln um ihn dann als PDF wieder anzuzeigen Java Basics - Anfänger-Themen 3
Kotelettklopfer Mehrere Projekte in einem Git verwalten Java Basics - Anfänger-Themen 10
B in einem Array den nächstgelegenen Wert zu einem eingabewert finden Java Basics - Anfänger-Themen 8
E JPanels auf gleicher Höhe (Y-Achse) in einem FlowLayout platzieren Java Basics - Anfänger-Themen 7
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
A Zu einem bestimmten Ort im Code springen Java Basics - Anfänger-Themen 11
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
D Zufällige Auswahl aus einem angelegten Array? Java Basics - Anfänger-Themen 10
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
R Mehrere Buchstaben aus einem String entfernen Java Basics - Anfänger-Themen 1
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
J Alle Dateien aus einem Verzeichnis laden Java Basics - Anfänger-Themen 10
H Minimum in einem Array bestimmen Java Basics - Anfänger-Themen 7
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
P Auswahl bei einem Videoverleih limitieren Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben