Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Slenderguy

Frischling

  • »Slenderguy« ist der Autor dieses Themas

Beiträge: 53

Wohnort: Schleswig-Holstein

  • Private Nachricht senden

1

30.11.2015, 15:45

[Java] Cookie Clicker Score

Hier ein kleiner Codeschnipsel

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public int Score = 0;
    
    public Draw(){
        int Score = 0;
        
        JButton button = new JButton();
        button.setText("Click");
        button.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                if(button == e.getSource()) Score++ ;
            }
        }); 
        button.setPreferredSize(new Dimension(100, 100));
        add(button);
        
         JLabel mylabel = new JLabel();
           
            mylabel.setText("Score " + Score);
            mylabel.setVisible(true);
            mylabel.setPreferredSize(new Dimension(200, 150));
            add(mylabel);   

Es soll beim klicken auf dem Button den Score um 1 erhöhen, aber bei

Quellcode

1
2
3
public void actionPerformed(ActionEvent e){
                if(button == e.getSource()) Score++ ;
            }

ist Score rot markiert und da steht so etwas wie: Local Variable Score defined in an eclosing scope must be final or efectly final.
Ich bitte um eine Code ergänzung, sonst wird mir das zu kompliziert, ich bin halt kein Informatiker oder so ^^

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

2

30.11.2015, 15:52

Du hast zwei mal eine Variable "Score" deklariert.

Slenderguy

Frischling

  • »Slenderguy« ist der Autor dieses Themas

Beiträge: 53

Wohnort: Schleswig-Holstein

  • Private Nachricht senden

3

30.11.2015, 17:51

Hmm, hast recht danke.
Trozdem geht das nicht, habe den Code aber korrigiert:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public Draw(){
        int Score = 1;
                        
        JButton button = new JButton();
        button.setText("Click");
        button.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                if(button == e.getSource()) Score++ ;
            }
        }); 
        button.setPreferredSize(new Dimension(100, 100));
        add(button);
        
        String Zahl = Integer.toString(Score);
        
        JLabel mylabel = new JLabel();
           
        mylabel.setText("Score " + Zahl);
        mylabel.setVisible(true);
        mylabel.setPreferredSize(new Dimension(200, 150));
        add(mylabel);

Genau der selbe Fehler :hmm:

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

4

30.11.2015, 17:52

EDIT: Hier stand blödsinn

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

30.11.2015, 18:02

Warum beschäftigst du dich eigentlich mit GUI Programmierung wenn die Grundlagen noch nicht vorhanden sind? Du definierst eine Variable in einer Methode. Die ist dann auch nur in der Methode vorhanden. Aber nicht im der Rest der Klasse. Sinnvoller wäre es wenn du erst mal ohne GUI startest. Da benötigst du Verständnis zu Konzepten die deine Fähigkeiten eindeutig noch übersteigen wenn solche Grundlagen wie hier noch nicht klar sind. Tu dir selbst den Gefallen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Slenderguy

Frischling

  • »Slenderguy« ist der Autor dieses Themas

Beiträge: 53

Wohnort: Schleswig-Holstein

  • Private Nachricht senden

6

30.11.2015, 18:13

Ich habe ohne der GUI schon über Monate hinweg programmiert, da gabs halt nur die eine Sache mit den Arrays die ich bis heute nicht begreiffe, aber bald noch mal wiederholen werde.
Ich glaube bei der GUI programmierung bin ich schon richtig.

Kann mir mal bitte jemand sagen was ich noch ergänzen muss damit, ich wenigstens ein mal in der Woche stolz sein kann das ich mal was zu ende gebracht habe XD ?

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

7

30.11.2015, 18:14

Ich glaube bei der GUI programmierung bin ich schon richtig.


Ähm nein. Wenn du Arrays nicht beherrschst und nicht weißt, in welchem Scope deine Variablen sind, dann ist GUI programmierung definitiv eine Nummer zu groß.

Slenderguy

Frischling

  • »Slenderguy« ist der Autor dieses Themas

Beiträge: 53

Wohnort: Schleswig-Holstein

  • Private Nachricht senden

8

30.11.2015, 18:15

Nein ich verstehe das Array Grundprinzip, nur halt nicht die eine Aufgabe !!

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

9

30.11.2015, 18:24

und nicht weißt, in welchem Scope deine Variablen sind,

Das ist dein Problem. Du weißt nicht in wie fern Variablen wo gültig sind. Guck noch mal nach was lokale Variablen in Funktionen sind und was Membervariablen von Klassen sind und gucke dir deren Gültigkeit an.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Slenderguy

Frischling

  • »Slenderguy« ist der Autor dieses Themas

Beiträge: 53

Wohnort: Schleswig-Holstein

  • Private Nachricht senden

10

30.11.2015, 18:31

@Schorsch
Muss ich das unbeding so genau wissen ?
Ich bin erst 16 Jahre alt und bin auch kein Genie, NUR eine einface Codeergänzung, vileicht auch eine kurze Erklärung würde reichen um von selbst auf den Sinn zu kommen.
Ich stelle besser keine neue Fragen mehr, bringt doch alles nichts.

Werbeanzeige