Array von JLabel (Anfänger... seit 2 Tagen)

SagaTious

Grünschnabel
-.- unglaublich...
Ich kriegs net auf die Reihe! Wie ruf ich Repaint denn auf? Eigentlich einfach repaint(); oder? Findet immer die Methode nicht. Hab dann mal danach gegoogelt und auch Leute bzw. Programme gefunden in denen repaint vorkam, meinen imports deren imports hinzugefügt und er findet die Methode immernochnicht!

Code:
: cannot find symbol
symbol  : method repaint()
location: class zauberkugel.ZauberkugelView
        repaint();
Immer das selbe. Hab das repaint jetzt einfach unter die Änderungen der Labels, also das Einbinden der Icons gemacht (auch auf den Button).
Was muss ich da einbinden? Bzw. wo muss das repaint hin? :rolleyes:
 

zeja

Erfahrenes Mitglied
Es kommt nicht nur auf die Imports an. repaint kann man dann direkt aufrufen wenn man eine Klasse erweitert (extends) die diese Methode bietet. In meinem Beispielcode extende ich z.B. JFrame, und kann damit auch repaint aufrufen.

Wo packst du denn deine Labels drauf? Das ist eine Komponente auf der du repaint aufrufen kannst.
 

SagaTious

Grünschnabel
Code:
public class ZauberkugelView extends FrameView {

Also ist ZauberkugelView meine Klasse (ist die einzige)... Und auf der sind meine Labels (hoffe das war was du wissen willst)
 

zeja

Erfahrenes Mitglied
Und was ist FrameView für eine Klasse?

Wie fügst du denn deine Label hinzu? Mit add?
 

SagaTious

Grünschnabel
Wie gesagt hab ich das dynamische Erzeugen von Komponenten noch nicht auf die Reihe bekommen :rolleyes:

Und da ich mit NetBeans arbeite ist das hinzufügen von Labeln zur Form nicht sonderlich schwer (im Form-Editor rechts auf Label klicken und auf das Formular ziehen :))

Da ich allerdings einfach nur dabei bin ein Programm nachzuprogrammieren hier mal das Programm: (FlashPlayer)
http://www.messe-ideen.de/online-spiel-magisches-zahlenraetsel.htm
Wobei das schwerste an dem Programm warscheinlich das Verstehen der Kugel ist :D
oberflche2hc1.th.jpg

So sieht das ganze jetzt bei mir aus... Wie du sehen kannst sind die Label schon vor dem Starten des Programms da... Also einfach auf das Formular gezogen :)
Beim Klick auf start soll dann allen Labeln wo jetzt 0 steht ein Icon zugewiesen werden, und dann beim Klick auf die Kugel das Icon der Kugel geändert werden!

PS: Aber jetzt bitte kein fertig programmiertes Java-Programm schicken... Soll ja als Übung dienen :)
 

zeja

Erfahrenes Mitglied
Hmm ja nun. Hilft ja nichts. Trotzdem wirst du rausfinden müssen wie die Label da auf die GUI kommen. Da kannste ja nach suchen nach den Labeln die werden ja Namen haben...
 

SagaTious

Grünschnabel
Also hab mal in dem "Generated Code" nachgeguckt, also das was das Programm von allein macht. Hab auch gefunden wie es die Labels auf die Form bringt:
(alles in einer erzeugten Methode "initComponents()")

Code:
jLabel81 = new javax.swing.JLabel();
jLabel81.setText(resourceMap.getString("jLabel81.text")); // NOI18N
jLabel81.setName("jLabel81"); // NOI18N
        javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
        mainPanel.setLayout(mainPanelLayout);
        mainPanelLayout.setHorizontalGroup(
            mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(mainPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(mainPanelLayout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 308, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(mainPanelLayout.createSequentialGroup()
                                .addGap(48, 48, 48)
                                .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel81)

/*Später nochmal das selbe nur als verticalGroup*/

    private javax.swing.JLabel jLabel81;

Also macht das irgendwie die einzelnen Komponenten (z.B. die Labels 99-80) zu einer Gruppe und dann werden die je nachdem wie man das Fenster in seiner Größe verändert angepasst... (komplett versteh ich das allerdings nicht :()
 

SagaTious

Grünschnabel
Hmhmhm...
Das geht zwar ohne Kompilierungsfehler allerdings ändern sich die Icons immernochnicht :(

Kann verstehen wenn du jetz mittlerweile keine Lust mehr hast, Hilfe wär aber trotzdem seeeehr nett. :)

Soll ich mal den kompletten Text in ner Datei hochladen? :rolleyes:
 

zeja

Erfahrenes Mitglied
Kannst du tun ja.... Ferndiagnosen sind halt immer schwierig und Automatisch generierten GUI-Designer Code nicht gerade lesbar oder gut editierbar.
 

Neue Beiträge