labeltext ändert sich nicht

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hi,

ich bin grad am rumtesten mit swing und hab folgendes problem:

ganz vereinfacht gesagt:
1.fall: ich hab 2 klassen ... ein frame und adde und ein panel. dem frame adde ich das panel. auf dem panel isn button und nen label. wenn ich den button drueck dann aenderts den labeltext. -> das funzt

2.fall: nun hab ich 3 klassen.. wieder das frame und diesmal 2 panels.. die panels adde ich wieder dem frame. auf dem einen panel is nun der button und auf dem anderen nun das label. und wenn ich jetzt den button drueck aendert sich der labeltext nicht.

hier ausschnitt aus der klasse mit dem button
Code:
button[0].addActionListener(new ActionListener()
                                        {
                                            public void actionPerformed(ActionEvent e)
                                            {
                                                Board board = new Board(); //board is die klasse mit dem label
                                                board.setLabel("neuer labeltext); 
                                                //board.label.setText("neuer labeltext");                                                
                                            }
                                        }
                
        );
in setLabel aender ich also den text des labels mit dem string parameter


was muss ich machen .. hab rumprobiert mit updateUI, repaint usw..
wieso laeuft im 1.fall alles ohne probleme und im 2.fall aendert sich garnix :(


danke im voraus
 
G

Gast2

Gast
ich weiß nicht was deine setLabel macht...
aber du kannst ein board.validate() mal versuchen
 
G

Guest

Gast
setLabel mach ich wie gesagt einfach nur nen label.setText().
aber selbst wenn ich direkt auf das label zugreif (label is public) dann funzt es nicht .. siehe im code die zeile die auskommentiert ist
Code:
board.label.setText("neuer labeltext");

validate will auch nicht :<
 

Verjigorm

Top Contributor
Board board = new Board(); //board is die klasse mit dem label

überleg mal was du hier machst?
Du legst nen NEUES Objekt Board an ....
Dieses Objekt existiert in deiner GUI wo?? ;)
 
S

SlaterB

Gast
du erstellst im ActionListener ein völlig neues Board,
das passt nicht zu der Idee, einen Text zu 'ändern'

um einen Text zu ändern, müsstest du bei einem vorhandenen Board etwas tut,
das neue Board ist höchstwahrscheinlich nicht in die GUI eingefügt
 
G

Guest

Gast
ohja das klingt logisch=)
hab jetzt das label und die setLabel() static gemacht und es funzt.

danke
 
S

SlaterB

Gast
also static als Lösung ist dann ja ganz schön daneben,
im Moment mag es funktionieren, aber damit verbaust du dir alle Möglichkeiten, etwa zwei Board-Panels im Programm zu haben
 
G

Guest

Gast
es wird zwar kein 2tes board panel geadded.. aber wie mach ich es nun dann "richtig".. ich steh aufm schlauch
 
S

SlaterB

Gast
das Board muss irgendwo gespeichert sein,

so wie die das Label vom Board mit getLabel() abfragst, muss auch das Board irgendwo per getBoard() erreichbar sein
 
G

Gast2

Gast
wenn es immer nur ein Board geben wird kannst du auch eine Singelton machen...
 
G

Gast2

Gast
was dein prob?????? wenn er nicht mehr wie ein board erzeugen will und das immer wieder ändern möchte...
 
G

Guest

Gast
so.. zweiter versuch.

hab es jetzt folgendermaßen .. und zwar in der frame klasse steht
Code:
board =  new Board();
controlpanel = new ControlPanel(board);
das funktioniert soweit auch

___________________________________________________________

mich würde aber noch folgendes interessieren
das Board muss irgendwo gespeichert sein,

so wie die das Label vom Board mit getLabel() abfragst, muss auch das Board irgendwo per getBoard() erreichbar sein
das boardpanel wird in der frameklasse erstellt. nun mach ich die getBoard() methode in die frameklasse. um aber von einer der panelklassen auf die getBoard() mehtode zugreifen zu können brauch ich wiederum ne instanz der frameklasse.. nun die hab ich ja wieder nicht.. also bin ich wieder da wo ich am anfang war !? ich check atm nicht durch... waer super wenn du mir das nochmal naeher erklaeren könntest :>
 
S

SlaterB

Gast
das ist doch genau die gleiche Sache nochmal:

1. getLabel() ist nicht lokal vorhanden sondern steckt in Board? -> dann brauchst du getBoard()

2. getBoard() ist nicht lokal vorhanden sondern steckt in Frame X? -> dann brauchst du getFrameX()

irgendwas muss vorhanden sein, irgendeine Zugriffsvariable und sei es das gesamte JFrame,
falls du dieses irgendwie zugreifbar hast, dann kannst du
getFrameX().getBoard().getLabel() aufrufen,
wenn du aber weder das Label, noch das Board, noch das JFrame oder irgendeine andere Indirektionsstufe hast, die du abfragen kannst,
ja dann ist das Label von diesem Listener aus nicht erreichbar,

statische Variablen als einfache Zugriffsmöglichkeiten ersparen natürlich kompliziertes Handling,
würde ich aber nur für wenige zentrale Objekte vorschlagen, die überall gebraucht werden, nicht für jedes billige Unterpanel (Board)

z.B. ist es weit weniger schlimm, das JFrame selber als statische Variable bekannt zu machen,
dann kannst du
FrameX.INSTANCE.getBoard().getLabel()
aufrufen, ein JFrame ist ja sehr wahrscheinlich nur genau einmal im Programm vorhanden

immer noch unschön, aber Board statisch ist unschöner ;)
 

FArt

Top Contributor
SirWayne hat gesagt.:
was dein prob?????? wenn er nicht mehr wie ein board erzeugen will und das immer wieder ändern möchte...

... dann ist die Lösung kein Singleton... das ist der Mißbrauch eines durchaus sinnvollen Patterns für Leute, die es nicht richtig machen wollen... und weil es so oft mißbraucht wird, wird es auch wieder oft verteufelt und ist deshalb verpöhnt.
 
G

Gast2

Gast
wenn er in seinem gesamten programm nur eine instanz von board will ist es für mich ein singelton...dann er kann er doch beliebig seine componenten darauf ändern(von dieser EINEN instanz)...

aber wie sehe war es ja nicht so gemeint...
 

Wildcard

Top Contributor
SirWayne hat gesagt.:
wenn er in seinem gesamten programm nur eine instanz von board will ist es für mich ein singelton...dann er kann er doch beliebig seine componenten darauf ändern(von dieser EINEN instanz)...
Ein Singelton ist es, wenn nicht mehr als eine Instanz erlaubt ist, wenn man nicht mehr als eine benötigt, ist es defintiv kein Singelton.
 
S

SlaterB

Gast
bei eigenen Klassen von denen man nur ein Objekt benötigt, wäre jedes weitere Objekt schädlich allein schon aus Verwechslungsgründen,
von Codeunsauberkeit und minimaler Performance ganz zu schweigen,

per Definition möchte man daher immer auch weitere Objekte verbieten, das 'benötigt' wird automatisch zum 'erlaubt',
mir fällt jedenfalls spontan kein Grund ein, warum man die Lücke offen lassen sollte?

edit: der erste fällt mir ein:
man will sich die Arbeit dafür (privater Konstruktor usw) sparen, allein vom Zeitaufwand, als auch weil es den Code verschandelt
 
G

Gast2

Gast
ok erlauben oder benötigen wir können ja alles auf die goldwaage legen...
wenn ich nur ein objekt benötige und nicht will das es mehrer davon gibt... erlaube ich doch auch nur eines oder???

und zum verschandeln wenn z.B. aus eclispe eine ResourceBundle klasse erstellt macht er auch einen private konstrukor weil er nur statische methode+attribute hat... ist das für dich dann auch verschandeln =)???
 
S

SlaterB

Gast
nene, für gewisse Klassen macht es ja gerade Sinn, da ist der zusätzliche Code praktisch auch die Doku zum Singleton,
die Betonung der Bedeutung der Klasse für das Gesamtprogramm,

aber wenn man ein einfaches JFrame hat, mehrere individuelle TeilPanel-Klassen, x Listener oder TableModel, die alle nur einmal verwendet werden,
dann schreibt man ja nicht bei jedem diese statische Methode,
allein schon weil sich der Aufwand nicht lohnt,

new MyFrame().setVisible(true);
und fertig
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Labeltext ändert sich nicht in actionPerformed AWT, Swing, JavaFX & SWT 5
M JavaFX Ein Labeltext eine zeitlang anzeigen dann weiter machen AWT, Swing, JavaFX & SWT 3
B Labeltext unterstreichen AWT, Swing, JavaFX & SWT 5
C Swing Labeltext am Anfang statt am Ende kürzen AWT, Swing, JavaFX & SWT 6
Kotelettklopfer Frame ändert Farbe nicht AWT, Swing, JavaFX & SWT 12
K JavaFX Fenstergröße ändert sich (Gluon - SceneBuilder) AWT, Swing, JavaFX & SWT 23
C Swing JFrame ändert Größe AWT, Swing, JavaFX & SWT 0
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
A Swing Fenster ändert Position bei Mausklick nicht AWT, Swing, JavaFX & SWT 2
2 JLabel - setText ändert den Text nicht AWT, Swing, JavaFX & SWT 4
M JFreeChart neu zeichnen sich Wenn Jtable sich ändert AWT, Swing, JavaFX & SWT 5
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
S Look und Feel ändert sich nicht AWT, Swing, JavaFX & SWT 4
R Ellipse2D ändert Größe AWT, Swing, JavaFX & SWT 3
F JFrame nach Buttonklick 3 Sekunden warten, bevor es sich ändert AWT, Swing, JavaFX & SWT 2
R LookAndFeel Nimbus ändert Programmausführung AWT, Swing, JavaFX & SWT 8
M Swing JScrollPane ändert ungewollt seine Größe AWT, Swing, JavaFX & SWT 2
K LookAndFeel Look And Feel ändert sich nicht AWT, Swing, JavaFX & SWT 8
B Swing verschachteltes GUI: repaint() ändert mehr als nur gewünschte Component AWT, Swing, JavaFX & SWT 4
A Swing TableCellRenderer ändert die Zeilenfarbe zu spät AWT, Swing, JavaFX & SWT 3
jemandzehage setResizable(false) ändert Größe des Contentpane AWT, Swing, JavaFX & SWT 4
E Swing JLabel ändert seine Position nach setText AWT, Swing, JavaFX & SWT 2
M JWindow schließen wenn Frame sich ändert AWT, Swing, JavaFX & SWT 2
B LayoutManager JLabel ändert GridBayLayout-Gewichtung AWT, Swing, JavaFX & SWT 2
M JTextArea ändert Schreibrichtung AWT, Swing, JavaFX & SWT 5
S JSplitPane ändert Farbe nicht AWT, Swing, JavaFX & SWT 4
O Hgr- Farbe einer JTable ändert sich nicht AWT, Swing, JavaFX & SWT 11
S JList inhalt ändert sich wie nennt sich ereignis/methode? AWT, Swing, JavaFX & SWT 3
S 1 Klick für JButton und Layout ändert sich AWT, Swing, JavaFX & SWT 14
L Button ändert eigenes Bild und Progressbar-Value nicht AWT, Swing, JavaFX & SWT 6
K JTextArea ändert Größe. AWT, Swing, JavaFX & SWT 3
S GUI ändert Größe AWT, Swing, JavaFX & SWT 9
R JTextField im GridBag ändert seine Größe nicht AWT, Swing, JavaFX & SWT 11
B JLabel ändert seine Position AWT, Swing, JavaFX & SWT 7
D CheckBox ändert Status nur, wenn sie FocusOwner ist AWT, Swing, JavaFX & SWT 2
Juelin Javafx hängt sich auf AWT, Swing, JavaFX & SWT 31
I JavaFX Programmcode pausieren gestaltet sich als schwierig AWT, Swing, JavaFX & SWT 7
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
berserkerdq2 Skalieren sich javafx objekte automatisch auf die Bildschirmgröße AWT, Swing, JavaFX & SWT 6
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
K Textarea aktuallisiert sich nicht, nach Auswahl (Itemlistener) AWT, Swing, JavaFX & SWT 3
S e(fx)clipse erscheint nicht im Marketplace, lässt sich nicht installieren AWT, Swing, JavaFX & SWT 16
A TableView updatet sich nicht AWT, Swing, JavaFX & SWT 3
M Wieso verändert sich die Framerate nach erneutem Starten des AnimationTimer? AWT, Swing, JavaFX & SWT 18
I AWT java.awt.FileDialog - "coffee cup"-Icon lässt sich nicht ersetzen AWT, Swing, JavaFX & SWT 14
J JOptionPane ruft sich selbst immer wieder neu auf AWT, Swing, JavaFX & SWT 3
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
R JOptionPane schließt sich nicht wieder AWT, Swing, JavaFX & SWT 2
R Textfield lässt sich nicht positionieren AWT, Swing, JavaFX & SWT 1
E Keystroke für Ausschneiden läßt sich nicht ändern AWT, Swing, JavaFX & SWT 2
B Dynamische ListView-Größe, die bei Fenstergrößenänderung sich anpasst AWT, Swing, JavaFX & SWT 19
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
R Swing Komponente im JFrame überschreinen sich AWT, Swing, JavaFX & SWT 7
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
O showConfirmDialog öffnet sich nicht AWT, Swing, JavaFX & SWT 3
S JavaFX Scene öffnet sich nicht AWT, Swing, JavaFX & SWT 3
C Bilder so einbinden, dass sie sich ändern AWT, Swing, JavaFX & SWT 6
ralfb1105 JavaFX Label lässt sich innerhalb service Task nicht updaten? AWT, Swing, JavaFX & SWT 22
J ChangeListener verhält sich komisch AWT, Swing, JavaFX & SWT 14
S Ausgabe aktualisiert sich nur nach 2. Klick AWT, Swing, JavaFX & SWT 17
Legi Swing JButton Icon verschiebt sich AWT, Swing, JavaFX & SWT 2
P Gui lässt sich nicht starten AWT, Swing, JavaFX & SWT 10
B JavaFX setOnMousePressed() - verhält sich wie setOnMouseClicked()? AWT, Swing, JavaFX & SWT 6
R JavaFX lässt sich nicht in Eclipse einbinden AWT, Swing, JavaFX & SWT 4
J BackgroundJPanel passt sich dem JFrame nicht an AWT, Swing, JavaFX & SWT 7
J Button lässt sich nicht auf dem JPanel verschieben AWT, Swing, JavaFX & SWT 5
M 2D-Grafik Spielfigur bewegt sich nicht AWT, Swing, JavaFX & SWT 6
W Javafx - Image soll sich mit der Camera mitbewegen AWT, Swing, JavaFX & SWT 1
T .jar-Datei lässt sich unflexibler ausführen als über die IDE AWT, Swing, JavaFX & SWT 11
K JavFX: VBox.setVGrow stell sich quer AWT, Swing, JavaFX & SWT 2
T Timer und GIF Animationen pausieren während Maus sich bewegt AWT, Swing, JavaFX & SWT 4
S Swing Bedienelemente ordnen sich automatisch neu an AWT, Swing, JavaFX & SWT 2
B Hauptfenster öffnet sich mehrmals AWT, Swing, JavaFX & SWT 9
K Mit JavaFX angefangen. Lohnt sich Swing? AWT, Swing, JavaFX & SWT 28
E Java FX ProgressIndicator dreht sich nicht AWT, Swing, JavaFX & SWT 8
P Swing JFrame minimiert sich bei Doppelklick auf die Titel-Leiste AWT, Swing, JavaFX & SWT 17
krgewb AWT JFrame soll sich wie Dialog verhalten AWT, Swing, JavaFX & SWT 9
D JavaFX Label lässt sich nicht mehrmals färben AWT, Swing, JavaFX & SWT 7
Prafy Sich ändernde Farbverläufe erstellen AWT, Swing, JavaFX & SWT 4
D JavaFX Anwendung hängt sich permanent auf AWT, Swing, JavaFX & SWT 6
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
T Swing Programm hängt sich auf! AWT, Swing, JavaFX & SWT 23
C LayoutManager Bei verkleinern des Fensters, verschieben sich JPanels übereinander. AWT, Swing, JavaFX & SWT 7
J Button vergrößert sich bei Fenster resize AWT, Swing, JavaFX & SWT 22
J Lohnt sich FX? AWT, Swing, JavaFX & SWT 2
Tort-E JavaFX ProgressIndicator dreht sich nicht AWT, Swing, JavaFX & SWT 2
S JavaFX Image Skalierung in Scrollpane, Scrollpane resized sich nicht AWT, Swing, JavaFX & SWT 5
N Programm mit Swing und Thread, Figur bewegen sich nicht AWT, Swing, JavaFX & SWT 6
Tom299 JavaFX Default-Cursor läßt sich nicht immer "aktivieren" AWT, Swing, JavaFX & SWT 3
B Frame hängt sich auf trotz invokeLater AWT, Swing, JavaFX & SWT 1
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
J Server stellt sich hin AWT, Swing, JavaFX & SWT 13
R Swing Elemente verschieben sich im GBL beim Ein/Ausblenden AWT, Swing, JavaFX & SWT 0
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
J Programm hängt sich bei Log In auf AWT, Swing, JavaFX & SWT 1
ToBJo JavaFX TreeView zerstört sich selbst AWT, Swing, JavaFX & SWT 1
T Swing Button bleibt grau [=> UI hat sich aufgehängt, Aufgabe in Thread auslagern] AWT, Swing, JavaFX & SWT 3
B JavaFX Problem bei Kamera / Group, gesamte Scene bewegt sich mit AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen


Oben