java-forum.org
JBoss Seam
Alter Preis: 39,95 €
Jetzt: 0,00 €

zzgl. Versandkosten

Zurück   java-forum.org > Java - Programmierung > AWT, Swing & SWT

AWT, Swing & SWT Themen zur Programmierung von Benutzer-Oberflächen (GUI) sowie zur Grafikprogrammierung (2D / 3D)

Antwort    
Themen-Optionen Thema durchsuchen Ansicht
Alt 07.08.2007, 19:28   #21 (permalink)
Stammbenutzer
Halbes Gigabyte
 
Registriert seit: 06.02.2006
Beiträge: 6.269
Abgegebene Danke: 0
Erhielt 2 Danke für 2 Beiträge
Hab mir diesen Thread erst heute durchgelesen, deshalb erst jetzt mein Kommentar dazu:

Kompliment@Wildcard:

Seine (ihre ) Vorgehensweise, dieses Thema aufzudröseln ist zwar
nichts für Eilige, aber er beschreibt dieses Thema anhand eines Laien,
der sich in einen Anfänger versetzen kann, und ihn erstmal auf falsche Fährten lenkt.

Diesen wohligmachenden Stil kenne ich noch von dem Verfasser unserer
damaligen Informatik-Bibel: "Algorithmen und Datenstrukturen" (Verfasser: Niklaus Wirth(*))

Auch er verstand es sehr gut, in seinem Buch, jemanden zuerst auf einmal auf
die falsche Fährte zu führen und dann, Schritt für Schritt, die Mysterica bei der
Programmierung zu entschleiern.

Dieses Buch hat meine Vorgehensweise beim Programmieren nachhaltig geprägt.

Wildcard? Wie alt bist du eigentlich?
(bitte, wenn überhaupt, via PN antworten )

PS: Ich hoffe mal, daß dieser Post, trotz meiner offensichtlich erkennbaren
Verfassung ( ), erhalten bleiben wird.

Ich verabschiede mich, dann vorerst mal...

P.S. Musste mal raus
P.P.S.: auch wenn mich AlArsenal jetztele Verdammich machten tutet.
P.P.S: Schönen Abend noch....



(*)
a) Professor an der ETH Zürich
b) Mit-Designer von Algol68
c) Erfinder von Pascal und Modula-II
d) ich meine dem hier
e) Zitat aus dem vorherigen Link:
Zitat:
Algorithmen und Datenstrukturen (1975), zum Klassiker geworden.
__________________
http://www.weltgebetsuhr.de/Signatur.gif
Leroy42 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 11.09.2007, 17:37   #22 (permalink)
Inkognito
 
Beiträge: n/a
Hey Wildcard!

Schönes Tutorial, hat mir geholfen! Danke!

Würde mich wirklich über weitere Teile freuen.
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 17.04.2008, 21:35   #23 (permalink)
Gast?
Inkognito
 
Beiträge: n/a
GAILES Tut

Info Unterricht von mir geownt lül
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 18.06.2008, 19:09   #24 (permalink)
Neuer Benutzer
Bit
 
Registriert seit: 19.02.2007
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Hallo!

Kennt ihr das "Problem", dass man, wenn man etwas gezeichnet hat und ein anderes Fenster das ganze überlagert oder man es rüber zieht, das Gezeichnete gelöscht, bzw wie weg radiert wird?

Ich habe hier diesen Thread überflogen und nichts dazu gefunden und für eine Google Recherche stell' ich mich nicht klug genug an.

Wenn jemand das schon mal hatte, würde ich mich freuen, wenn ihr mir helfen könntet

Danke!
__________________
Ich bin hilflos und Java-nicht-verstehend
Timmothey ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 18.06.2008, 20:31   #25 (permalink)
Stammbenutzer
CD-R 80
 
Registriert seit: 07.01.2007
Beiträge: 9.104
Abgegebene Danke: 0
Erhielt 260 Danke für 252 Beiträge
Wenn du in der paintComponent-Methode zeichnest (und NUR da!) und der Event-Dispatch-Thread nicht blockiert ist, sollte das nicht passieren. Wenn BEIDE Bedingungen nicht erfüllt sind, poste ein compilierbares Programm, wo das Problem auftritt. Wenn du nicht weißt, ob sie erfüllt sind, sag bescheid.
Marco13 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 06.07.2008, 10:34   #26 (permalink)
Stammbenutzer
CD-R 80
 
Benutzerbild von André Uhres
 
Registriert seit: 10.05.2005
Beiträge: 7.393
Blog-Einträge: 9
Abgegebene Danke: 6
Erhielt 82 Danke für 79 Beiträge
Zitat: Timmothey
Kennt ihr das "Problem", dass man, wenn man etwas gezeichnet hat und ein anderes Fenster das ganze überlagert oder man es rüber zieht, das Gezeichnete gelöscht, bzw wie weg radiert wird?
Damit eine Swing Komponente jederzeit neu gezeichnet werden kann,
muss der Malcode unbedingt in der callback Methode "paintComponent(..)" stehen.
Diese wird vom System aufgerufen, wenn die Komponente beschädigt wurde.

Wenn du den Malcode auslagern willst, dann besteht die Möglichkeit, auf ein Image zu malen,
und in "paintComponent(..)" einfach nur dieses Image zu zeichnen (drawImage).
Hier ist ein Beispiel: DrawOnImage.java
__________________
Lerne anzuhalten -- oder nichts lohnendes kann dich erreichen.
André Uhres ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 23.07.2008, 16:18   #27 (permalink)
Benutzer
Byte
 
Registriert seit: 10.04.2008
Beiträge: 57
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Find das Tutorial super,vor allem da ich meistens mit älteren Tutorials zu tun hab da ich kein gutes finde ausser welchen die noch von 2003 oder sowas sind. Zum Thema dass man überall "benutze NICHT!!! getGraphics() " einsetzen soll,ich glaube das würd die leser mehr nerven als von getGraphics() abzubringen.Ich würd jedenfalls eher mit demLesen aufhören wenn ständig kommt NICHT GetGraphics() BENUTZEN.
__________________
Heute code ich,morgen debug ich, übermorgen caste ich die Königin auf int (aus dem bekannten Märchen Rumpelnerd)
ShadowSpace-Der Tod wartet nicht
siriuswhite ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 23.07.2008, 18:50   #28 (permalink)
Stammbenutzer
CD-R 80
 
Benutzerbild von André Uhres
 
Registriert seit: 10.05.2005
Beiträge: 7.393
Blog-Einträge: 9
Abgegebene Danke: 6
Erhielt 82 Danke für 79 Beiträge
Zitat: siriuswhite
Ich würd jedenfalls eher mit demLesen aufhören wenn ständig kommt NICHT GetGraphics() BENUTZEN.
Ich würde das auch lieber positiv formulieren, so daß kein Missverständnis entstehen kann.
Für sich allein betrachtet, ist die Aussage nämlich falsch, wie dieses Beispiel zeigt: DrawOnImage.java
__________________
Lerne anzuhalten -- oder nichts lohnendes kann dich erreichen.
André Uhres ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 23.07.2008, 20:20   #29 (permalink)
Stammbenutzer
CD-R 80
 
Registriert seit: 07.01.2007
Beiträge: 9.104
Abgegebene Danke: 0
Erhielt 260 Danke für 252 Beiträge
Das mit dem "nicht getGraphics benutzen" war ja nur als Hinweis darauf, dass das (nicht wirklich ernsthaft "überall eingestreut" , sondern an den entsprechenden Stellen oder einmal) an "prominanter Stelle" stehen sollte, weil es ja ein SEHR häufiger Fehler ist. Und wenn, dann auch richtig - also nicht nur das als kurzes, knackiges Bibel-ähnliches Gebot formulierte "Thous halt not call getGraphics", sondern sowas wie "getGraphics auf Components aufzurufen ist fast immer falsch" .... Nicht so drauf rumhacken
Marco13 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 24.07.2008, 01:33   #30 (permalink)
Stammbenutzer
CD-R 80
 
Benutzerbild von André Uhres
 
Registriert seit: 10.05.2005
Beiträge: 7.393
Blog-Einträge: 9
Abgegebene Danke: 6
Erhielt 82 Danke für 79 Beiträge
Auch eine ungünstige Formulierung (man fragt sich dann, wann es richtig ist, und die Antwort würde für Anfänger wohl wieder zu weit führen).
Hier ist eine mögliche positive Formulierung:

Swing benutzt einen "callback" ("Wiederholungsbesuch") Mechanismus zum Zeichnen.
Das heißt, daß ein Programm den Darstellungscode der Komponente innerhalb einer bestimmten
überschriebenen Methode setzen sollte, und das Toolkit ruft diese Methode auf, wenn es Zeit ist zu malen.
Die zu überschreibende Methode ist in javax.swing.JComponent:

Java Code: Quelltext in neuem Fenster öffnen
1
protected void paintComponent(Graphics g)
__________________
Lerne anzuhalten -- oder nichts lohnendes kann dich erreichen.

Geändert von Ebenius (02.07.2009 um 17:04 Uhr) Grund: [code] => [java]
André Uhres ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 24.07.2008, 10:43   #31 (permalink)
Stammbenutzer
CD-R 80
 
Registriert seit: 07.01.2007
Beiträge: 9.104
Abgegebene Danke: 0
Erhielt 260 Danke für 252 Beiträge
Das würde aber niemanden davon abhalten, "mal kurz" in irgendeinem "game loop" getGraphics().drawSomeWeirdStuff() aufzurufen. Aber vermutlich wird selbst das beste Tutorial der Welt uns nicht vor Theads bewahren, in denen das gemacht wird. Diejenigen, die diese Threads starten, haben im Zweifelsfall einfach noch kein entsprechendes Tutorial gelesen
Marco13 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 24.07.2008, 11:29   #32 (permalink)
Stammbenutzer
CD-R 80
 
Benutzerbild von André Uhres
 
Registriert seit: 10.05.2005
Beiträge: 7.393
Blog-Einträge: 9
Abgegebene Danke: 6
Erhielt 82 Danke für 79 Beiträge
Es gibt 1000 Möglichkeiten, Code zu schreiben, der nicht funktioniert.
Aber wenn wir ein einfaches Tutorial haben, das beschreibt, wie das Zeichnen in Swing funktioniert und wie man korrekten und leistungsfähigen GUI Malcode schreibt, dann ist das sicherlich von Vorteil. Zumindest können wir dann die Anfänger erstmal darauf verweisen.
Siehe auch: Malen in AWT und Swing und Lesson: Performing Custom Painting
__________________
Lerne anzuhalten -- oder nichts lohnendes kann dich erreichen.
André Uhres ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 16.01.2009, 16:28   #33 (permalink)
Neuer Benutzer
Byte
 
Registriert seit: 08.01.2009
Beiträge: 17
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Gut gemacht.
Ich beschäftige mich erst seit kurzen mit der grafischen Programmierung, und konnte es gut verstehen.
Ich finde auch den Weg nicht schlecht. Würde aber im "faschen Code" Kommentare setzen. Wenn man dann Copy& Past beim falshen Teil macht, wird man dann bei der Fehler Suche vielleicht den Fehler besser erkennen.

Außerdem wenn ich es eillig habe und nur schnell Code suche, lese ich aber zumindestens die ersten Zeilen in einem HowTo um zu sehen was drin steht und ob sich die Suche im Howto lohnt. Und wenn das Vorgehen mit dem flaschen dem richtige Ansatz am Anfang erwähnt wird, ist das ausreichend. Ich würde es an deinen Stelle nicht ändern.
semi2183 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.03.2009, 21:07   #34 (permalink)
Neuer Benutzer
Bit
 
Registriert seit: 19.03.2009
Beiträge: 1
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Hallo,
Ich möchte hiermit den Autor nochmal mein Lob aussprechen.

Super gemacht.
Modular ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 03.04.2009, 03:49   #35 (permalink)
Stammbenutzer
Viertel Gigabyte
 
Benutzerbild von 0x7F800000
 
Registriert seit: 22.04.2007
Beiträge: 3.459
Abgegebene Danke: 1
Erhielt 10 Danke für 10 Beiträge
Öhm, wieso konnte ich keinen Link zu diesem Thread in FAQ finden?
Würde das bitte einer mal reinstellen? Danke.
__________________
aka Andrey
0x7F800000 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 03.04.2009, 15:11   #36 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von Ebenius
 
Registriert seit: 18.11.2003
Beiträge: 4.646
Abgegebene Danke: 8
Erhielt 131 Danke für 127 Beiträge
Ich glaube, Wildcard wollte hier noch einige Änderungen machen. Die FAQ sollten, soweit ich weiß, keine Diskussionen beinhalten sondern in sich geschlossene Erklärungen. Dieses Thema ist für einen FAQ-Eintrag meiner Meinung nach zu durcheinander.

Ebenius
__________________
The first rule of program optimization: don't do it. The second rule of program optimization (for experts only!): don't do it yet. [Michael Anthony Jackson]
Ebenius ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 23.09.2009, 08:42   #37 (permalink)
Neuer Benutzer
Bit
 
Registriert seit: 06.09.2009
Beiträge: 7
Blog-Einträge: 1
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Hallo Wildcard,

ich finde das Tutorial auch gut, allerdings sollte nicht so rigoros auf den falschen Ansatz eingegangen werden.

Für die Zukunft würde ich mir wünschen
- Unterschied zwischen AWT und Swing,
- warum paintComponent anstatt paint,
- was hat es mit repaint auf sich,
- wo soll setPreferredSize aufgerufen werden

viele grüße
DaFuchs ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 07.12.2009, 21:59   #38 (permalink)
Stammbenutzer
Team JCupGames
Kilobyte
 
Benutzerbild von U2nt
 
Registriert seit: 05.12.2009
Beiträge: 205
Abgegebene Danke: 3
Erhielt 12 Danke für 12 Beiträge
Wenns möglich wäre vielleicht das "Tutorial" als PDF verpacken?

(Oder hab ich einen Link übersehen? Hoffe nich :P)

Ansonsten super Tutorial!
__________________
U2nt ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 07.06.2010, 10:36   #39 (permalink)
Neuer Benutzer
Bit
 
Registriert seit: 07.06.2010
Beiträge: 7
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Es gibt eine GetGraphics Schnittstelle

Jo die paint Methoden von JComponent zu überschreiben ist eine verkorkste Angelegenheit, da sich alles ineinander verschachtelt. Viel einfacher ist es sich das Graphics Objekt des Frame zu angeln und sich eigene Klassen(z.B.Kreis) schreiben welche das Graphics Object zum zeichnen nutzen.
Frame.getContentPane().getGraphics()
Graphics2D g= (Graphics2d) Frame.getContentPane().getGraphics();

Java Code: Quelltext in neuem Fenster öffnen
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
import javax.swing.*;
import java.awt.*;
/**
 *
 * @author Nature One
 */
class Kreis
{
    Graphics G;
    int x,y,r;
    public Kreis(Graphics g)
    {
        G=g;
    }
    public void init(int px,int py,int pz)
    {
        x=px;y=py;r=pz;
    }
    public void zeichne()
    {
        G.drawOval(x, y,r, r);
    }
}
public class JZeichnen extends JFrame
{
    Kreis K;
    public JZeichnen()
    {
        setBounds(0,0,600,400);
        K=new Kreis(getContentPane().getGraphics());
    }
}
JBuntu ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 07.06.2010, 10:57   #40 (permalink)
Java-Forum Team
IRC-Operator (Java-Chat)
 
Registriert seit: 02.07.2009
Beiträge: 2.924
Blog-Einträge: 1
Abgegebene Danke: 7
Erhielt 480 Danke für 477 Beiträge
Du hast die erste Seite nicht gelesen oder?
Zitat:
Aus eben diesem Grund ist der scheinbar offensichtlich Weg über getGraphics falsch.
Anstatt sich aktiv ein Graphics Objekt zu holen und anzufangen zu zeichnen muss der Swing Programmierer passiv zeichnen, also darauf warten das AWT/Swing unsere Objekte zum zeichnen auffordert, denn nur AWT/Swing wissen wann das nötig ist.
Dies ist ein sehr häufiger Trugschluß, weshalb hier so detailiert auf die Problematik eingegangen wurde.
Bleibt die Frage wie man es denn richtig macht.
Jede JComponent verfügt über eine Methode paintComponent(Graphics g).
Wie man sieht wird hier das benötigte Graphics Objekt direkt als Parameter übergeben.
(p.s.: Variablen schreibt man klein)
__________________
Gruß Basti
eRaaaa ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort    

Lesezeichen

Latex Maths & Physics Editor ...

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen 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 aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zu Zeichnen in Swing Tutorial AWT, Swing & SWT 4 17.05.2008 00:06
Swing Tutorial foxy AWT, Swing & SWT 4 18.04.2007 21:39
Zeichnen in Swing biker126 AWT, Swing & SWT 17 05.06.2006 23:35
Swing Tutorial gesucht ! jagdfalke Java Basics - Anfänger-Themen 11 14.07.2005 16:05
SWING TUTORIAL skYCop AWT, Swing & SWT 2 24.11.2003 19:31


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:08 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de