Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Desktop-Applikationen und Grafik > Frame löscht Canvas-Inhalt
Antwort
 
Themen-Optionen
Alt 17.11.2005, 07:24   Nach oben    #1
tbrnds
Gast
 
Beiträge: n/a
Standard Frame löscht Canvas-Inhalt

Hallo!

Ich programmiere ein Zeichenprogramm, das hauptsächlich aus einer Canvas - Komponente besteht. Über ein Menü kann ich einen JColorChooser aufrufen, der dann die Canvas teilweise überdeckt. Nach dem Schließen ist dann der überdeckte Bereich gelöscht. Wie kann man das verhindern?
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.11.2005, 15:55   Nach oben    #2
Robinson
Benutzer
 
Registriert seit: 13.08.2005
Beiträge: 67
Standard

Hi, Source wäre hilfreich!

Soweit ich weiß dürfte das nicht passieren wenn das Zeichnen in der paint Methode durchgeführt wird.

Diese wird aufgerufen wenn wie in deinem Fall die Komponente neu gezeichnet werden soll.
Robinson ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.11.2005, 15:55   Nach oben    #3
rennfrikadelle
Gast
 
Beiträge: n/a
Standard

Nach dem schließen des Dialogs das redraw () von Canvas aufrufen.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.11.2005, 20:28   Nach oben    #4
tbrnds
Gast
 
Beiträge: n/a
Standard

Also eine redraw() Methode konnte ich in Canvas nicht finden. Und natürlich zeichne ich in der Paint() Methode.
Ich habe zwei Klassen, eine Frame - Klasse und eine Canvas Klasse. Die Methode, in der der JColorChoser aufgerufen wird, lautet:

void colorMenuAction(ActionEvent e)
{


Color newColor = JColorChooser.showDialog(
null, "Wähle neue Farbe", null );


picasso.zeichenfarbe = newColor;
}

(picasso ist das Canvas Objekt).

Die paint() Methode der Canvas Klasse lautet:

public void paint(Graphics g)
{

if(line == true)
{

g.setColor(zeichenfarbe);
g.drawLine(mousePressed.x, mousePressed.y, mouseReleased.x, mouseReleased.y);

}
else if(circle == true)
{
// Den Abstand der Punkte berechnen, mit dem Satz des Pythagoras
int dist = (int)Math.sqrt((mouseReleased.y - mousePressed.y)*(mouseReleased.y - mousePressed.y) + (mouseReleased.x - mousePressed.x)*(mouseReleased.x - mousePressed.x));
if(filled)
{
g.setColor(zeichenfarbe);
g.fillOval(mousePressed.x, mousePressed.y, dist, dist);
}
else
{
g.setColor(zeichenfarbe);
g.drawOval(mousePressed.x, mousePressed.y, dist, dist);
}
}
...........
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
YAML, Inhalt links, Sidebar rechts, Inhalt vor Sidebar im Quelltext Ben HTML, XML und CSS 20 22.03.2007 18:26
[PHP] FTP-Funktionen in PHP nutzen MrNiceGuy Tutorials 0 24.05.2006 14:18
JInternalFrame und Canvas bezüglich Reihenfolge Hot-Thunder Desktop-Applikationen und Grafik 10 06.07.2005 20:56
Inhalt aus Canvas als Vektorgrafik in Zwischenablage? matt Desktop-Applikationen und Grafik 1 16.06.2005 07:21
Inhalt einer Canvas in eine Dateispeichern Zeeky-H-Bomb Allgemeine Java-Programmierung 0 11.06.2005 13:15


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:07 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44