Portal > Foren > Java > Desktop-Applikationen und Grafik > Spielfeld programmierung mit Swing (jComponent)
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 16.02.2005, 15:02 Nach oben    #1
Maximum
Gast
 
Beiträge: n/a
Standard Spielfeld programmierung mit Swing (jComponent)

Hallo
Also ich habe vor ein Spielfeld zu programmieren (Spielfeld soll heißen eine Art Brettspiel mit einer geschwungenen bahn von Feldern).
So nun habe ich rausgefunden das dafür warscheindlich eine eigene Komponente her muss. In Swing sollte dies laut meinem Buch durch eine Ableitung von jComponent gehen.

Dann hätte ich vor ein Bild über die Anzeigebreite der Komponente zu legen.
Jetzt soll aber im Spielfeld auf Klicks reagiert werden. Auch Animationen sollen gemacht werden (Bewegung der Spielfiguren).
Nun kann ich aber eben in einer Komponente doch nur einen ActionListener bzw. MouseListener registrieren (also ich meine nur einen von jeder Sorte) oder ?

D. h. ich müsste die Position der Maus abfragen und mir merken ob ich da ein Klickbares Objekt haben will und die jeweilige Aktion dazu oder ?
Oder kann man irgendwie noch eigene Objekte in einer Komponente definieren oder so ?

Ein weiteres Problem ist das jButtons von Außerhalb der Komponente Einfluss auf diese haben sollen. D.h. wenn ich außerhalb von der Komponente einen Button drücke soll in der Komponente etwas passieren. Ist sowas auch möglich ? Braucht man dafür dann eine Bean mit ihren externen Listenern (properityChangeEvent usw.) ?

Ich weiß nicht ob das Vorgehen wie ich mir das gerade so ausmale korrekt ist.
Vielleicht kann mir ja jemand auf die Sprünge helfen.

Danke schon mal im Voraus
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.02.2005, 15:08 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Hi,
zunächst einmal bitte ich Dich nicht in unterschiedlichen Fachforen das gleiche Problem zu posten, okay?
--> http://jforum.de/showthread.php?t=939

Wir helfen Dir so schnell wir können, da wir aber heute Nacht die Forensoftware gewechselt haben ... mussten wir eben etwas zurückstecken

Zum Problem.
Ich denke, dass das, was Du Dir da vorstellst eigentlich nur mittels eine Applets realisiert werden kann.

Ich weiß es nicht, aber ich könnte mir vorstellen, dass Du so nicht mit Objekten von JComponent arbeiten kannst.
Vor allem, was die Animationen aneht.

Eventuell hat da jemand anderes hier noch andere Ansichten?
Würde mich interessieren.

Grüße Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.02.2005, 15:46 Nach oben    #3
Maximum
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Ben
Hi,
zunächst einmal bitte ich Dich nicht in unterschiedlichen Fachforen das gleiche Problem zu posten, okay?
--> http://jforum.de/showthread.php?t=939

Wir helfen Dir so schnell wir können, da wir aber heute Nacht die Forensoftware gewechselt haben ... mussten wir eben etwas zurückstecken

Zum Problem.
Ich denke, dass das, was Du Dir da vorstellst eigentlich nur mittels eine Applets realisiert werden kann.

Ich weiß es nicht, aber ich könnte mir vorstellen, dass Du so nicht mit Objekten von JComponent arbeiten kannst.
Vor allem, was die Animationen aneht.

Eventuell hat da jemand anderes hier noch andere Ansichten?
Würde mich interessieren.

Grüße Ben.
Sorry das ich zweimal gepostet habe, aber ich dachte es würde bischen besser in diesen Teil des Forums passen.

Ich hoffe mir wird verziehen
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 20:52 Nach oben    #4
Maximum
Gast
 
Beiträge: n/a
Standard Keiner kann mir helfen ?

Kann mir hier wirklich keiner weiterhelfen ??
Hat noch niemand hier eine eigene grafische Komponente programmiert ??
Das gibts doch nicht.

Ich hoffe immernoch stark das es hier doch Leute gibt die Wissen wie soetwas prinzipiell funktioniert.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 20:57 Nach oben    #5
bluelight
Gast
 
Beiträge: n/a
Standard

Wiso ein JApplet, es geht auch für normale Aplikation, du kannst von JPanel erben, du kannst auf ihn zeichnen wie auf ein Applet und auch Steuerelemente hinzufügen.
Du kannst dir natürlich als Componenten(Steuerelementen) etwas selbst programmieren, ansonsten ürde ich dir von einem Canvas abraten dort kann man keine Steuerelemente hinzufügen.

ich konnte leider nicht so ausfürlich und früh Antworten, da ich ziemlich viel zu tun habe im Moment

mfg
bluelight
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 21:07 Nach oben    #6
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Du kannst einem Component beliebig viele MouseListener "adden". Deswegen heißen die Methoden auch "addMouseListener" und nicht "setMouseListener".

Dann eine Anmerkung zum allgemeinen... wenn es dir dabei nicht die Erfahrung geht, so etwas selbst zu entwickeln hätte ich nen Tipp aus meiner Sammlung "irgendwann mal aufgeschnappt und in die Lesezeichen gepackt":
http://goldenstudios.or.id/products/GTGE/
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 21:11 Nach oben    #7
Maximum
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von bluelight
Wiso ein JApplet, es geht auch für normale Aplikation, du kannst von JPanel erben, du kannst auf ihn zeichnen wie auf ein Applet und auch Steuerelemente hinzufügen.
Du kannst dir natürlich als Componenten(Steuerelementen) etwas selbst programmieren, ansonsten ürde ich dir von einem Canvas abraten dort kann man keine Steuerelemente hinzufügen.

ich konnte leider nicht so ausfürlich und früh Antworten, da ich ziemlich viel zu tun habe im Moment

mfg
bluelight
Ich habe zur Zeit ein kleines Verständnisproblem :
Für was ist die Methode protected void paintComponent(Graphics g) ?
Ich habe mir schon andere codes angeschaut, dort wird diese Methode dazu verwendet die Komponente die von JPanel abgeleitet ist von außen neu zu zeichnen.
Ist das normal ? Oder sollte man paint(Graphics g) überlagern und dann repaint machen ?
Ich weiß aber das paint oder repaint implizit die paintComponent aufrufen.
Aber so richtig checken tu ichs noch net.

Vielleicht kannst du mir das ja erklären
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 21:16 Nach oben    #8
Maximum
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von TheDragonMaster
Du kannst einem Component beliebig viele MouseListener "adden". Deswegen heißen die Methoden auch "addMouseListener" und nicht "setMouseListener".

Dann eine Anmerkung zum allgemeinen... wenn es dir dabei nicht die Erfahrung geht, so etwas selbst zu entwickeln hätte ich nen Tipp aus meiner Sammlung "irgendwann mal aufgeschnappt und in die Lesezeichen gepackt":
http://goldenstudios.or.id/products/GTGE/
Mir geht es schon eher um die Erfahrung. Bloß fehlen mir irgendwie so die Konzepte dafür. Im Netz habe ich nicht viel darüber gefunden und aus meinem Buch waren nicht wirklich viele Informationen verwertbar.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 21:18 Nach oben    #9
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Bin zwar nicht bluelight, aber mit dem Thema kenne ich mich recht gut aus...

Swing verwendet eine Form von MVC (Model-View-Controller - d.h. Separation von Daten, Aussehen und Verhalten). Wenn du also das aussehen einer Komponente verändern willst, solltest du für diese Komponente ein UI-Delegate erstellen.
Dieses übernimmt das eigentliche zeichnen der Komponente.

Aus der Reihe "irgendwann mal aufgeschnappt und in die Lesezeichen übernommen":
http://mail.phys-iasi.ro/Library/Com...ashed/ch22.htm
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 23:29 Nach oben    #10
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 432
Standard

Zitat:
Zitat von Maximum
Ich habe zur Zeit ein kleines Verständnisproblem :
Für was ist die Methode protected void paintComponent(Graphics g) ?
Ich habe mir schon andere codes angeschaut, dort wird diese Methode dazu verwendet die Komponente die von JPanel abgeleitet ist von außen neu zu zeichnen.
Ist das normal ? Oder sollte man paint(Graphics g) überlagern und dann repaint machen ?
Ich weiß aber das paint oder repaint implizit die paintComponent aufrufen.
Aber so richtig checken tu ichs noch net.

Vielleicht kannst du mir das ja erklären
Für ein einfaches Zeichnen, solltest Du nur die paintComponent-Methode überschreiben und darin zeichnen.
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.02.2005, 11:50 Nach oben    #11
Maximum
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von TheDragonMaster
Bin zwar nicht bluelight, aber mit dem Thema kenne ich mich recht gut aus...

Swing verwendet eine Form von MVC (Model-View-Controller - d.h. Separation von Daten, Aussehen und Verhalten). Wenn du also das aussehen einer Komponente verändern willst, solltest du für diese Komponente ein UI-Delegate erstellen.
Dieses übernimmt das eigentliche zeichnen der Komponente.

Aus der Reihe "irgendwann mal aufgeschnappt und in die Lesezeichen übernommen":
http://mail.phys-iasi.ro/Library/Com...ashed/ch22.htm
So ich hab mir jetzt mal diese Sachen durchgelesen.
Recht viel schlauer bin ich aber glaub ich dennoch nicht geworden.
In Kapitel 24 wird beschrieben wie eine Custom Komponente erstellt wird, was ja für mich warscheindlich eher zutreffen wird (weil es ja ein grafisches Spielfeld als Komponente werden soll auf dem man auch klicken und auswählen können soll).
Soweit ich das jetzt verstanden habe wird eine Klasse (abgeleitet von JComponent) geschrieben, die die Komponente darstellt, aber sich nicht selbst zeichnet. Dies erledigen dann die UI-Klassen , die man selbst schreiben muss. Dann werden noch ProperityChange Listener verwendet (Die kenn ich jetzt nur aus meinem Buch, dort wurde beschrieben das diese zum Nachrichtenverkehr von Beans untereinander sind) um die Darstellungsart durch die UI-Klassen festzulegen.
Ist das soweit korrekt ?
Wenn ich jetzt kein look and feel umschalten benötige, brauchte ich auch keine UI-Klassen oder ?
Prinzipiell gibt es ja immer nur eine paint Methode , mit der ich auch Animationen in der Komponente (Spielfiguren bewegen sich) durch Flags oder ähnliches abfragen müsste oder ?

So langsam stellt sich bei mir eine totale Verwirrung ein.
Hast du vielleicht auch ein Deutsches HOWTO oder ein Buch für mich auf Lager ?
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.02.2005, 23:55 Nach oben    #12
bluelight
Gast
 
Beiträge: n/a
Standard

also ich ich überlage immer paint(graphics g) und das funzt ganz gut, versuch erstmal das, denn es ist besser wenn man am Anfang erst die leichteste Möglichkeit nimmt und dann kompilizierter bzw komplexer wird.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen 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 Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Warning: not compatibele with future Swing releases Ben Allgemeine Java-Programmierung 4 10.03.2006 11:08
Spielfeld aus Ableitung von Canvas programmieren Maximum Allgemeine Java-Programmierung 3 15.02.2005 23:21


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:31 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

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 45