Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 06:14

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Java] Konflikt zwischen Label verschieben und setText() [Schulprojekt]

Discussion on [Java] Konflikt zwischen Label verschieben und setText() [Schulprojekt] within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 1
Join Date: Feb 2010
Posts: 1,242
Received Thanks: 2,391
[Java] Konflikt zwischen Label verschieben und setText() [Schulprojekt]

Hallo zusammen,

da mir mit diesem Projekt bei einer anderen Frage bereits gut weitergeholfen wurde möchte ich nochmal eine Frage stellen, aber zunächst nochmal die gesamtsituation:
Wir bauen mit Java das Brettspiel "Mensch ärgere dich nicht" nach und nutzen dafür die Netbeans IDE. Die Spielfiguren werden durch Labels, die ein Icon beinhalten dargestellt. Jetzt müssen diese Label natürlich verschoben werden, was auch kein Problem an sich darstellt. Das Problem besteht darin, dass man zwar die Labels mit label.setLocation(x,y) oder label.setBounds(x,y,h,w) verschieben kann, diese aber nachdem man den Text eines anderen Labels mit label2.setText("String") ändert wieder auf die ursprüngliche Position zurückgesetzt werden. Ich hoffe ihr könnte mir bei dem Problem weiterhelfen...

Ich werde das ganze Teil mal anhängen.

Danke im Vorraus, Morris
Attached Files
File Type: zip Mensch ärgere dich nicht.zip (561.1 KB, 5 views)
Endtothenight is offline  
Old 07/07/2011, 11:27   #2
 
Secredo's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 355
Received Thanks: 106
Du könntest alle Positionen speichern, Text ändern, Positionen wieder setzen.
Weiß nicht ob ihr sowas "dreckiges" benutzen dürft.
Secredo is offline  
Thanks
1 User
Old 07/07/2011, 13:28   #3
 
elite*gold: 1
Join Date: Feb 2010
Posts: 1,242
Received Thanks: 2,391
Quote:
Originally Posted by Secredo View Post
Du könntest alle Positionen speichern, Text ändern, Positionen wieder setzen.
Weiß nicht ob ihr sowas "dreckiges" benutzen dürft.
Das wäre theoretisch möglich, nur finde ich das extrem unschön und nervig das nach jedem Text ändern wieder aufzurufen, gibt es da nicht eine andere Möglichkeit? Beziehungsweise weiss jemand, woran das liegen könnte, ich hab nicht so wirklich viel Ahnung von Java...

LG
Endtothenight is offline  
Old 07/07/2011, 13:40   #4
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
könnte am swing layout-manager ligen.

in java benutzt man oft den swing layout manager:
das heisst du legst nciht selbst fest wo die bottuns, labels etc stehen mit koordinaten, sondern das macht er für er für dich.

normalerweise sagt man nur ob die buttons z.B. nebeneinandere oder übereinander etc sein sollen(mit Panels, borderlayout etc).

in einen fall ist es möglichweise so: sobald du settext aufrufst vergrössert sich die grösse des labels. Darauf hin sagt sich der layout manager: ah jetzt hat sich ja was geändert ich muss also nochmal neu berechnen wo ich die ganzen labels, buttons etc am besten hinpacke, und er kommt wiederzu dem selben schluss wie da wo er es zuvor hingetan hat.
nkkk is offline  
Thanks
1 User
Old 07/07/2011, 15:12   #5
 
elite*gold: 1
Join Date: Feb 2010
Posts: 1,242
Received Thanks: 2,391
Hm, das klingt logisch. Kann man dem den vielleicht mitteilen, dass man nicht alles neu gemalt haben will sondern nur das panel auf dem das stattfindet?
Endtothenight is offline  
Old 07/07/2011, 16:19   #6
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
sry so genau weiss ich das nciht ist schon ne weile her das ich das letze mal programme in java geschreiben hab.


aber du bist dur sicher das es nicht ohne setposition geht ?
aslo mit boxlayout, flowlayout etc ?
nkkk is offline  
Old 07/07/2011, 16:22   #7
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
Vorweg, ich kenne mich nicht sonderlich mit Java aus, aber wäre es nicht sinnvoll das Spielfeld und die Spielfiguren durch Grafikobjekte darzustellen, statt labels zu zweckentfremden?
Natürlich musst du dafür eine Spielfeld und eine Spielfigur Klasse erstellen und EventHandler für die entsprechenden Inputevents registrieren, aber dann kannst du dir sicher sein dass sich alles genau so verhält wie du es Programmierst.
Bot_interesierter is offline  
Thanks
1 User
Old 07/07/2011, 16:32   #8
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
Quote:
Originally Posted by Bot_interesierter View Post
Vorweg, ich kenne mich nicht sonderlich mit Java aus, aber wäre es nicht sinnvoll das Spielfeld und die Spielfiguren durch Grafikobjekte darzustellen, statt labels zu zweckentfremden?
Natürlich musst du dafür eine Spielfeld und eine Spielfigur Klasse erstellen und EventHandler für die entsprechenden Inputevents registrieren, aber dann kannst du dir sicher sein dass sich alles genau so verhält wie du es Programmierst.
sry hatte den ersten post genu genug gelesen.

aber ich muss zustimmen das es wohl besser währe zu "malen", anstatt labels zu benutzten.

zum "malen" kann man z.B. eine unterklasse von "JPanel" bauen und die "paintComponent()" methode überschreiben:


einfaches beisiel:
nkkk is offline  
Thanks
1 User
Old 07/07/2011, 17:02   #9
 
elite*gold: 1
Join Date: Feb 2010
Posts: 1,242
Received Thanks: 2,391
Was müsste ich den dazu alles importieren?
Endtothenight is offline  
Old 07/07/2011, 18:09   #10
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
Quote:
Originally Posted by Endtothenight View Post
Was müsste ich den dazu alles importieren?
Code:
import java.awt.*;
import javax.swing.*;
nkkk is offline  
Old 07/07/2011, 21:40   #11
 
elite*gold: 1
Join Date: Feb 2010
Posts: 1,242
Received Thanks: 2,391
Lösung

Quote:
Originally Posted by nkkk View Post
könnte am swing layout-manager ligen.

in java benutzt man oft den swing layout manager:
das heisst du legst nciht selbst fest wo die bottuns, labels etc stehen mit koordinaten, sondern das macht er für er für dich.

normalerweise sagt man nur ob die buttons z.B. nebeneinandere oder übereinander etc sein sollen(mit Panels, borderlayout etc).

in einen fall ist es möglichweise so: sobald du settext aufrufst vergrössert sich die grösse des labels. Darauf hin sagt sich der layout manager: ah jetzt hat sich ja was geändert ich muss also nochmal neu berechnen wo ich die ganzen labels, buttons etc am besten hinpacke, und er kommt wiederzu dem selben schluss wie da wo er es zuvor hingetan hat.
Ich hab mich nach dieser äußerst hilfreichen Information für folgende funktionierende, wenn auch unschöne, Lösung entschieden:
Ich habe das Hintergrundbild [Spielfeld] mit den Labels [Spielfiguren] in ein seperates Form gepackt und die Buttons, Anzeigelabels etc in ein anderes. Jetzt habe ich zwar 2 Fenster, aber die Spielfiguren werden nicht auf 0 zurückgesetzt.

Danke für eure Antworten!
Endtothenight is offline  
Old 07/07/2011, 23:45   #12

 
Obilee's Avatar
 
elite*gold: 11
Join Date: May 2007
Posts: 62,452
Received Thanks: 29,520
wärs nicht sinnvoller die weißen felder wo die figuren drauf landen können als feste label / buttons / what ever zu erstellen wo einfach nur die farbe geändert wird ? Dann muss man sich auch nicht um koordinaten usw. kümmern

wenn man es mit buttons macht kann man auch gleich somit sagen welche spielfigur bewegt werden soll durch den actionlistener
Obilee is offline  
Old 07/08/2011, 07:23   #13
 
elite*gold: 1
Join Date: Feb 2010
Posts: 1,242
Received Thanks: 2,391
Quote:
Originally Posted by Obilee View Post
wärs nicht sinnvoller die weißen felder wo die figuren drauf landen können als feste label / buttons / what ever zu erstellen wo einfach nur die farbe geändert wird ? Dann muss man sich auch nicht um koordinaten usw. kümmern

wenn man es mit buttons macht kann man auch gleich somit sagen welche spielfigur bewegt werden soll durch den actionlistener
Das blöde ist dann nur, dass ich nachher 72 Buttons hätte
Endtothenight is offline  
Old 07/08/2011, 10:13   #14

 
Obilee's Avatar
 
elite*gold: 11
Join Date: May 2007
Posts: 62,452
Received Thanks: 29,520
Und wo ist das Problem ? 1 Array und gut ist.
Dies zu ändern ist ja jetzt eh zu Spät da ihr schon zu Weit im Programm seid :P
Obilee is offline  
Old 07/08/2011, 14:18   #15
 
elite*gold: 1
Join Date: Feb 2010
Posts: 1,242
Received Thanks: 2,391
Quote:
Originally Posted by Obilee View Post
Und wo ist das Problem ? 1 Array und gut ist.
Dies zu ändern ist ja jetzt eh zu Spät da ihr schon zu Weit im Programm seid :P
...und wir Ende nächster Woche vorstellen sollen...
Endtothenight is offline  
Reply


Similar Threads Similar Threads
Schulprojekt [MusikVideo] Feedback
07/11/2011 - Music - 18 Replies
Nabend ;) .. Hatte da mal eine Frage. Habe folgendes MusikVideo erstellt:YouTube - ‪Two Steps from Hell - Dragon Rider ‬‏ Wie findet ihr es und was für eine Schulnote würdet ihr dem ganzen geben ?.. Damit ich weiss auf was ich mich im Musikunterricht einlassen kann ;) .. Am besten auch kleines Feedback, für kommende nicht an die Schule gebundene MusikVideos. Hoffe euch gefällt das und ich wünsche euch noch einen guten Abend ;) //LG INFERNIUS//
[Java] GUI aktualisieren - Schulprojekt
07/02/2011 - General Coding - 8 Replies
Hi zusammen, wir sollen in Informatik ein Projekt in Java veranstalten, wobei ich mich mit einem Kollegen für eine Umsetzung des bekannten Brettspiels "Mensch ärgere dich nicht" entschieden habe. Wir haben jetzt angefangen für jedes Team einzelne Klassen zu schreiben etc. ... Hier erstmal ein Bild des jetztigen Standes: http://img534.imageshack.us/img534/2223/javamdn.j pg Wenn man auf "Startaufstellung" klickt, dann sollten zuerst alle 16 Spielfiguren initialisiert werden und danach auf...
IP Konflikt ?!?!?!? Help.
05/19/2010 - Technical Support - 11 Replies
Moin. Ich Lade gerade etwas mit µTorrent. Mein Lappy Sagte mir, dass es ein IP Adressen Konflikt gibt, da jemand anderes die Selbe IP hat wie ich. Ich habe 5 Laptops angeschlossen aber nur einer ist an. Zudem habe ich noch 2 Pc´s die ebenfalls aus sind.
Ip Adressen Konflikt
11/05/2009 - Metin2 Private Server - 5 Replies
Hi, Wenn ich Virtual Pc Starte ( Auf Hamachi Eingstellt ) zeigt er mir unten an "Ip Adressen Konflikt" und bei FTERM beim connecten genau das selbe. Bitte um Hilfe



All times are GMT +2. The time now is 06:14.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.