Spielautomat bilder vergleichen

The Ripper

Mitglied
Ich hoffe ihr könnt mir weiterhelfen
Mein Problem ist ich weiß nicht wie ich die Bilder(in diesem Fall wären es GIFs, aber könnte man zurnot ändern) mit einander vergleichen kann, ob 3 gleiche Bilder in einer Reihe liegen oder Schräg
kann man einfach mit dem Datei Pfad prüfen wenn ja wie stell ich das an :D
ich bin überfordert :D

Hätte noch eine Frage die angezeigten Bilder sind alle Verschoben und nich in den einzelnen Buttons zentriert wie kann ich das beheben?

Vielen dank für eure Hilfe jetzt schon


Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import java.awt.Image;
import java.awt.Graphics;
import java.util.Random;

/**
 *
 * Beschreibung
 *
 * @version 1.0 vom 06.04.2011
 * @author
 */

public class Frame extends JFrame {
    // Anfang Attribute
    private JLabel anzeige;
    private Label Gewinnanzeige = new Label();
    private JButton jButton1 = new JButton(new ImageIcon());
    private JButton jButton2 = new JButton(new ImageIcon());
    private JButton jButton4 = new JButton(new ImageIcon());
    private JButton jButton5 = new JButton(new ImageIcon());
    private JButton jButton3 = new JButton(new ImageIcon());
    private JButton jButton6 = new JButton(new ImageIcon());
    private JButton jButton7 = new JButton(new ImageIcon());
    private JButton jButton8 = new JButton(new ImageIcon());
    private JButton jButton9 = new JButton(new ImageIcon());
    private JButton jButtonAuszahlen = new JButton();
    private JButton jButtonStarten = new JButton();
    private Random zufall;
    private int guthaben;
    private int gewinn;
    private String bild1;
    private String bild2;
    private String bild3;

    // Ende Attribute

    public Frame(String title) {
        // Frame-Initialisierung
        super(title);
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        int frameWidth = 874;
        int frameHeight = 853;
        setSize(frameWidth, frameHeight);
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        int x = (d.width - getSize().width) / 2;
        int y = (d.height - getSize().height) / 2;
        setLocation(x, y);
        Container cp = getContentPane();
        cp.setLayout(null);
        zufall = new Random();
        anzeige = new JLabel ("Guthaben: " + guthaben);
        guthaben = 200;
        gewinn = guthaben - 200;

        bild1= "Icons/car.gif";
        bild2= "Icons/bart.gif";
        bild3= "Icons/7.gif";

        jButton1.setBounds(221, 109, 150, 150);
        jButton1.setText("");
        jButton1.setMargin(new Insets(2, 2, 2, 2));
        jButton1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton1_ActionPerformed(evt);
                }
            });
        jButton1.setEnabled(false);
        jButton1.setDisabledIcon(new ImageIcon(bild1));
        cp.add(jButton1);
        jButton2.setBounds(370, 109, 150, 150);
        jButton2.setText("");
        jButton2.setMargin(new Insets(2, 2, 2, 2));
        jButton2.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton2_ActionPerformed(evt);
                }
            });
        jButton2.setEnabled(false);
        jButton2.setDisabledIcon(new ImageIcon(bild2));
        cp.add(jButton2);
        jButton4.setBounds(221, 258, 150, 150);
        jButton4.setText("");
        jButton4.setMargin(new Insets(2, 2, 2, 2));
        jButton4.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton4_ActionPerformed(evt);
                }
            });
        jButton4.setEnabled(false);
        jButton4.setDisabledIcon(new ImageIcon(bild1));
        cp.add(jButton4);
        jButton5.setBounds(370, 258, 150, 150);
        jButton5.setText("");
        jButton5.setMargin(new Insets(2, 2, 2, 2));
        jButton5.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton5_ActionPerformed(evt);
                }
            });
        jButton5.setEnabled(false);
        jButton5.setDisabledIcon(new ImageIcon(bild2));
        cp.add(jButton5);
        jButton3.setBounds(519, 109, 150, 150);
        jButton3.setText("");
        jButton3.setMargin(new Insets(2, 2, 2, 2));
        jButton3.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton3_ActionPerformed(evt);
                }
            });
        jButton3.setEnabled(false);
        jButton3.setDisabledIcon(new ImageIcon(bild3));
        cp.add(jButton3);
        jButton6.setBounds(519, 258, 150, 150);
        jButton6.setText("");
        jButton6.setMargin(new Insets(2, 2, 2, 2));
        jButton6.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton6_ActionPerformed(evt);
                }
            });
        jButton6.setEnabled(false);
        jButton6.setDisabledIcon(new ImageIcon(bild3));
        cp.add(jButton6);
        jButton7.setBounds(221, 407, 150, 150);
        jButton7.setText("");
        jButton7.setMargin(new Insets(2, 2, 2, 2));
        jButton7.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton7_ActionPerformed(evt);
                }
            });
        jButton7.setEnabled(false);
        jButton7.setDisabledIcon(new ImageIcon(bild1));
        cp.add(jButton7);
        jButton8.setBounds(370, 407, 150, 150);
        jButton8.setText("");
        jButton8.setMargin(new Insets(2, 2, 2, 2));
        jButton8.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton8_ActionPerformed(evt);
                }
            });
        jButton8.setEnabled(false);
        jButton8.setDisabledIcon(new ImageIcon(bild2));
        cp.add(jButton8);
        jButton9.setBounds(519, 407, 150, 150);
        jButton9.setText("");
        jButton9.setMargin(new Insets(2, 2, 2, 2));
        jButton9.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton9_ActionPerformed(evt);
                }
            });
        jButton9.setEnabled(false);
        jButton9.setDisabledIcon(new ImageIcon(bild3));
        cp.add(jButton9);

        jButtonAuszahlen.setBounds(221, 661, 200, 80);
        jButtonAuszahlen.setText("Gewinn Auszahlen");
        jButtonAuszahlen.setMargin(new Insets(2, 2, 2, 2));
        jButtonAuszahlen.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButtonAuszahlen_ActionPerformed(evt);
                }
            });
        cp.add(jButtonAuszahlen);
        jButtonStarten.setBounds(473, 661, 200, 80);
        jButtonStarten.setText("Spiel Starten");
        jButtonStarten.setMargin(new Insets(2, 2, 2, 2));
        jButtonStarten.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButtonStarten_ActionPerformed(evt);
                }
            });
        cp.add(jButtonStarten);
        anzeige.setBounds(308, 601, 286, 37);
        anzeige.setText("   Guthaben:   " +  guthaben);
        anzeige.setFont(new Font("MS Sans Serif", Font.BOLD, 29));
        cp.add(anzeige);
        Gewinnanzeige.setBounds(266, 18, 300, 58);
        Gewinnanzeige.setText("Gewinn:  " + gewinn);
        Gewinnanzeige.setFont(new Font("MS Sans Serif", Font.BOLD, 39));
        cp.add(Gewinnanzeige);
        // Ende Komponenten

        setResizable(false);
        setVisible(true);    // Anfang KomponentensetLayout(new BorderLayout());
        setLayout(new BorderLayout());

        // Ende Komponenten
    }

    // Anfang Methoden

    public void jButton1_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton2_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton4_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton5_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton3_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton6_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton7_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton8_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton9_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButtonAuszahlen_ActionPerformed(ActionEvent evt) {

        guthaben = 100;

        //evtl Highscoreanbindung hier einfügen

    }

    public void jButtonStarten_ActionPerformed(ActionEvent evt) {

        int eins = zufall.nextInt(4);
        int zwei = zufall.nextInt(4);
        int drei = zufall.nextInt(4);

        bild1=bildAuswahl(eins);
        bild2=bildAuswahl(zwei);
        bild3=bildAuswahl(drei);

        //         System.out.println(bild1);
        //  System.out.println(bild2);
        //   System.out.println(bild3);

        jButton1.setDisabledIcon(new ImageIcon(bild1));
        jButton2.setDisabledIcon(new ImageIcon(bild2));
        jButton3.setDisabledIcon(new ImageIcon(bild3));

        if (eins != 4) {

            eins++;
        } else {
            eins = 0;
        }

        bild1 = bildAuswahl(eins);

        if (zwei <3) {

            zwei = zwei+2;
        } else {
            if(zwei == 3)
            {
                zwei= 0;

            }
            else
            {
                zwei= 1;
            }
        }
        bild2 = bildAuswahl(zwei);
        if (drei != 0) {

            drei = drei-1;
        } else {
            drei = 4;
        }

        bild3 = bildAuswahl(drei);

        jButton4.setDisabledIcon(new ImageIcon(bild1));
        jButton5.setDisabledIcon(new ImageIcon(bild2));
        jButton6.setDisabledIcon(new ImageIcon(bild3));

        if (eins != 4) {

            eins++;
        } else {
            eins = 0;
        }

        bild1 = bildAuswahl(eins);

        if (zwei <3) {

            zwei = zwei+2;
        } else {
            if(zwei == 3)
            {
                zwei= 0;

            }
            else
            {
                zwei= 1;
            }
        }

        bild2 = bildAuswahl(zwei);
        if (drei != 0) {

            drei = drei-1;
        } else {
            drei = 4;
        }

        bild3 = bildAuswahl(drei);

        jButton7.setDisabledIcon(new ImageIcon(bild1));
        jButton8.setDisabledIcon(new ImageIcon(bild2));
        jButton9.setDisabledIcon(new ImageIcon(bild3));
        
        GewinnErmitteln();

    }

    public String bildAuswahl(int n)
    {
        switch(n){
            case 0:
            return "Icons/car.gif";

            case 1:
            return "Icons/pokeball.gif";

            case 2:
            return "Icons/nemo.gif";

            case 3:
            return "Icons/bart.gif";

            case 4:
            return "Icons/7.gif"; 

            default:
            return "";
        }
    }

    public void GewinnErmitteln()
    {


        if(jButton1.ImageIcon == jButton2.bild2 & jButton2.bild2 == jButton3.bild3)
        
       {
           system.out.println("gewonnen");
        }    

    }    

    // Ende Methoden

    public static void main(String[] args) {
        new Frame("Frame");

    }

}
 

Fu3L

Top Contributor
Du könntest die Bilder in einer Variablen speichern, anstelle des Pfads. Dann könntest du über JButton.getIcon() Vergleiche anstellen.

Und ein ganz wichtiger anderer Tipp: Benutze doch lieber ein Button-Array oder eine ArrayList. Du weist den Buttons ganz viele Eigenschaften zu, die bei allen gleich sind. Das ginge in einer for-schleife viel einfacher. Insbesondere wäre das nachträgliche Ändern auch weniger ätzend ;)
Und du brauchst auch nur einen ActionListener... Implementiere doch ActionListener in deinem Frame und nutze an deinen Buttons:

Java:
button.addActionListener(this);
button.setActionCommand("1");

Dann könntest du in einer einzigen actionPerformed-methode, die dein Frame definieren würde, über
Java:
public void actionPerformed(ActionEvent ev) {
   if(ev.getActionCommand().equals("1")) { ... }
}
oder auf ähnliche Weise prüfen, welcher Button die Aktion ausgelöst hat.

Edit: Generell finde ich es seltsam, dass du Buttons zum Darstellen von Bildern nutzt^^ Nimm doch lieber JLabel, wenn du sie sowieso deaktivierst.. Dann kannst du dir auch den ActionListener sparen. Desweiteren kannst du dir setText(""); sparen, da bei der Nutzung des Konstruktors ohne Stringübergabe einfach ein JLabel/JButton ohne Text erstellt wird ;)
 
Zuletzt bearbeitet:

The Ripper

Mitglied
Wegen den Buttons meinte mein Informatiklehrer das wäre einfacher ;)
ich habs dann einfach mal hingenommen

das mit den Action listener versteh ich noch nich so ganz
ich hab die grafik also die Buttons mittel Java Editor erstellt und schreib den restlichen Code mit Bluej

wie speicher ich die bilder in ner Variablen?
 

Fu3L

Top Contributor
Anstatt immer wieder new IconImage(bildnummer) aufzurufen, speichere die Bilder einfach in entsprechenden Variablen:

Java:
ImageIcon car = new ImageIcon("Icons/car.gif");

Dann kannst du die Bilder immer über die Variable zuweisen und sparst nebenbei viele Aufrufe und das Neuerstellen einiger Objekte ;)

Bluej wurde an meiner Schule auch benutzt.. Ich konnte zum Glück kein Informatik wählen, weil die, die das 1 Jahr lang mitgemacht haben, konnten danach nicht einmal ein HalloWelt Programm selbstständig ausführen :noe:
 

The Ripper

Mitglied
schreib ich des in den Konstruktor oder in den Frame textkörper?

ich habs etz in den Teil gepackt
dann zeigt er mir cannot find symbol class IconImage

Java:
IconImage car = new IconImage("Icons/car.gif");
    IconImage bart = new IconImage("Icons/bart.gif");
    IconImage nemo = new IconImage("Icons/nemo.gif");
     IconImage 7 = new IconImage("Icons/7.gif");
    IconImage pokeball = new IconImage("Icons/pokeball.gif");

Auch nimmt er die 7 nich an :D


bluej is sowas vonein nerviges programm
was wäre ne alternative dazu was es einfacher und besser verständlich macht
ich bin echt nicht gut darin
entschuldige meinen blöden fragen
 

Fu3L

Top Contributor
Tschuldige, das war mein Fehler, habs vorhin schon editiert, wohl zu spät. Es heißt natürlich wie bei dir im Quelltext ImageIcon ;) Die kannst du am besten noch über den Buttons deklarieren und initialisieren, weil du danach den Buttons das direkt zuordnen kannst. Aber auf jeden Fall müssen es Membervariablen sein, also innerhalb der Klasse, aber außerhalb von Methoden definiert werden ;)

Ich mag Eclipse, aber ein GUI-Builder ist da (zumindest standartmäßig) nicht mit drin und wenn dein Lehrer das vorraussetzt, bleib vllt lieber dabei^^
 
Zuletzt bearbeitet:

The Ripper

Mitglied
Membervariablen :D
ich bin überfordert :D

Java:
  public Frame(String title) {
        // Frame-Initialisierung
        super(title);
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        int frameWidth = 874;
        int frameHeight = 853;
        setSize(frameWidth, frameHeight);
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        int x = (d.width - getSize().width) / 2;
        int y = (d.height - getSize().height) / 2;
        setLocation(x, y);
        Container cp = getContentPane();
        cp.setLayout(null);
        zufall = new Random();
        anzeige = new JLabel ("Guthaben: " + guthaben);
        guthaben = 200;
        gewinn = guthaben - 200;
        ImageIcon car = new ImageIcon("Icons/car.gif");
        ImageIcon bart = new ImageIcon("Icons/bart.gif");
        ImageIcon nemo = new ImageIcon("Icons/nemo.gif");
        ImageIcon sieben = new ImageIcon("Icons/7.gif");
        ImageIcon pokeball = new ImageIcon("Icons/pokeball.gif");

habs etz da rein gepackt
und was kann ich mit dem zugewiesenen anstellen

und was bringt mir das für den Bilder vergleich :D
 

The Ripper

Mitglied
und das mit den Buttons zusammenfassen in deinem ersten post müsstest du mir auch erklären wie stell ich das an wie würde dann der code dazu aussehen?
 

Fu3L

Top Contributor
Eigentlich gehöre ich nicht zu den "Vorkauern", aber das erinnert mich alles zu sehr an meinen Stufenkollegen, die an ein halb fertiges Spiel gesetzt wurden, ohne Kenntnisse und einfach mal was hinzufügen sollten^^

Du kannst den Buttons jetzt immer die ImageIcons zuordnen:

Java:
JButton button = new JButton(car);

Danach kannst du, wenn du irgendwann deine Überprüfung machst, ob mehrere in einer Reihe sind, einfach folgendes tun:

Wir nehmen an, dass button1, button 4 und button7 in einer Reihe liegen nach dem Drehen:
Java:
if(button1.getIcon() == button4.getIcon() && button4.getIcon() == button7.getIcon()) {
  //Gib gewinn oder so^^
}

Das kannst du machen, da die gleichen Symbole immer durch das selbe Objekt dargstellt werden und somit auch über die gleiche Referenz verfügen, die du mit == vergleichen kannst.

Und so wie du die ImageIcons nun eingefügt hast, sind es Membervariablen ;)

Und Buttons zusammenfassen geht so:

Java:
private JButton[] btns = new JButton[20];
//Dann weiter in einer Methode:
for(int i = 0; i < btns.length; i++) {
  //Edit: Initialisierung vergessen
  btns[i] = new JButton();
  btns[i].addActionListener(this);
  //Oder andere Dinge, die bei allen Buttons gleich lauten sollen
}

Sowas mit Code zusammenmixen, der von einem GUI-Editor erstellt wurde, ist aber natürlich nicht einfach^^
 
Zuletzt bearbeitet:

The Ripper

Mitglied
danke du nicht "Vorkauer" :D
aber wenn ich des jetzt richtig verstehe willst du damit doch jedem Button ein fertiges Bild zuweisen

ich hatte die variablen Bild1 , Bild2 und Bild3 eingefügt das ich mit dem switch part alle 5 bilder einbinden kann die jeweils bei ihren erzeugten zufallszahlen ausgegeben werden

also ich hab bei case 0 sagen wir das auto
d.h. die zufallszahl war 0

und bei deinem wär doch dann immer das auto oder hab ich nen denkfehler drinnen


oke das mit der Abfrage hatte ich mir schon so überlegt gehabt hatte es allerding mit
Java:
jButton1.Bild1 == jButton2.Bild2 && jButton.Bild2 == jButton3.Bild3
probiert aber da gab er mir nur Fehlermeldungen aus deswegen hatte ich es verworfen

anscheind brauch ich bei der abfrage ja da j vor den Buttons nicht
wieder was gelernt :)
 

Fu3L

Top Contributor
Du kannst die ImageIcons auch in einem Array speichern:

Java:
ImageIcon[] icons = new ImageIcon[] {new ImageIcon("Icon/car.gif"), .....};
//Und dann der Zugriff über:
icons[x]; //Wobei x eine Zahl im Rahmen der Arraygröße (minus 1) ist^^

Du musst schon den Variablennamen verwenden, wie du ihn festgelegt hast, also ist das j richtig. Bei mir handelte es sich nur um ein Beispiel ;)
Aber dieses .Bild1 funktioniert natürlich nicht^^
 

The Ripper

Mitglied
schade :D
ja array hat mir auch jmd gesagt

das array startet wie die random zahl mit 0 oder?

wenn ich meine abfrage mit dem .bild auf .getIcon() umschreibe geht des dann?
 

The Ripper

Mitglied
und kannst du mal schauen was beim button gewinnauszahlen das problem ist
ich hab definiert wenn ich da drauf klick sollte er den gewinn von 200 auf 100 runtersetzen damit ich sehen kann das er was macht aber er passiert absolut nichts ;D
 

Fu3L

Top Contributor
und kannst du mal schauen was beim button gewinnauszahlen das problem ist
ich hab definiert wenn ich da drauf klick sollte er den gewinn von 200 auf 100 runtersetzen damit ich sehen kann das er was macht aber er passiert absolut nichts ;D

Du änderst das Guthaben, aber nicht den Text des Labels ;)

und ja: .getIcon() gibt die Referenz auf das aktuell verwendete Bild des Buttons zurück.
 

The Ripper

Mitglied
ah oke
ich habs so geschrieben:
Java:
if(jButton1.getIcon() == jButton2.getIcon() && jButton2.getIcon() == jButton3.getIcon())
        {
            System.out.println("gewonnen");
        
        }

mach ich des mit set.text ?
 

Fu3L

Top Contributor
Ja, mit .setText() ;)

Java Platform SE 6

Hier kannst du die Methoden nachlesen, die eine Klasse hat. (Kleiner Tipp mit Strg + F kannste dir viel Zeit sparen, indem du da zB "JLabel" eintippst, anstatt da alles durchzuscrollen^^)
 

Fu3L

Top Contributor
Ich habe mir nicht alles im Detail angesehen, probiers am besten einfach aus. Und wenn du dich mal fragst, ob eine Methode überhaupt aufgerufen wird oder so, einfach ein gutes System.out.println("Ich werde aufgerufen"); einbaun und laufen lassen ;)

achja: Arrays starten mit 0, da haste recht^^ Deswegen ist auch die maximale Zahl, die du als Index setzen darfst Länge des Arrays minus 1^^
 

The Ripper

Mitglied
so ich habe alles so gut wie fertig
hab es mittels array gelöst ;)
danke dafür nochmal ist echt viel einfacher

mein problem aktuell ist folgendes
ich möchte wenn ich das erste mal auf einen button(button text aktuell: Spiel beenden) klicke
dann wird das spiel beendet und der spielstand ausgegeben nun wird der text geändert auf dem button auf ( Neustart)

etz müsste ich ne funktion haben die beim zweiten klick alles sozusagen auf reset macht

kann man des auf einem button lösen ?

danke schonmal
 

Fu3L

Top Contributor
Wieso sollte man nicht mit einem Button das ganze machen können?

Du schreibst dir am besten ne Methode: createNewGame().

Da kopierst du alle Vorbereitungen rein, die beim ersten Spielstart auch nötig waren und auch nötig werden, wenn man deinen Button drückt.
Natürlich ist das nur effektiv, wenns schon ein paar Sachen mehr sind, die beim ersten Start genauso laufen, wie bei einem Reset.

Im ActionListener kannste dann in der actionPerformed()-Methode die createNewGame() Methode aufrufen und auch zB den "Neustart"-Button wieder in "Beenden" Umtaufen und so weiter. Es ist ja mehr als eine Anweisung pro Methode möglich^^
 

The Ripper

Mitglied
ich meinte das so mein button spiel beenden beendet das aktuelle glückspiel und gibt den erspielten gewinn aus
der button spiel beenden ist aber auch schon als neustart button definiert wenn das guthaben <= 0 ist schaltet er den Spielen button auf disabled ;) damit man nich mehr klicken kann

jetzt das problem nach dem ganzen vorgang ist ja ansich das guthaben immer noch > 0 desheißt meine if bedingung funktioniert nicht

Java:
 public void jButtonNeustart_ActionPerformed(ActionEvent evt) {

        if(guthaben <= 0)
        {
            guthaben = 200;
            anzeige.setText("Guthaben: " + guthaben);
            jButtonStarten.setEnabled(true);
        }
        else
        {
                  jButtonStarten.setEnabled(false);
            Textausgabe.setText("Ihr gewonnener Betrag:" + gewinn );
        }


              

        //evtl Highscoreanbindung hier einfügen

    }

und wie würde man da eine highscore anbindung realisieren
gibts da iwo eine anleitung oder kannst du mir da weiter helfen?
 
Zuletzt bearbeitet:

Fu3L

Top Contributor
Also: Du nimmst eine Membervariable (den Begriff kensnt du ja jetzt) gameRunning vom Typ boolean und setzt die am Anfang auf true.

Im ActionListener kansnt dann immer prüfen, ob gameRunning nun true oder false ist, bzw. an den geeigneten Stellen die Variable ändern. Das solltest du hinkriegen ;)
 

The Ripper

Mitglied
Java:
public void jButtonNeustart_ActionPerformed(ActionEvent evt) {

        if(guthaben <= 0)
        {
            guthaben = 200;
            anzeige.setText("Guthaben: " + guthaben);
            jButtonStarten.setEnabled(true);
        }
        else
        {
            if ( gamerunning = true)
            {
                gamerunning = false;
                jButtonStarten.setEnabled(false);
                Textausgabe.setText("Ihr gewonnener Betrag:" + gewinn );
                jButtonNeustart.setText("Spiel Neustarten");
                
            }
            else
            {
                jButtonStarten.setEnabled(true);
                guthaben = 200;
                anzeige.setText("Guthaben: " + guthaben);
                jButtonNeustart.setText("Spiel beenden!");
                
            }

        }

        //evtl Highscoreanbindung hier einfügen

    }

    public void jButtonStarten_ActionPerformed(ActionEvent evt) 
    {
       gamerunning = true;

        if(guthaben > 0)
        {
            
            guthaben= guthaben - 10;
            anzeige.setText("Guthaben: " + guthaben);
            Textausgabe.setText(" 10 Einsatz gesetzt");
            jButtonNeustart.setText("Spiel beenden!");

            int eins = zufall.nextInt(4);
            int zwei = zufall.nextInt(4);
            int drei = zufall.nextInt(4);

            bild1=icons[eins];
            bild2=icons[zwei];
            bild3=icons[drei];

            jButton1.setDisabledIcon(bild1);
            jButton2.setDisabledIcon(bild2);
            jButton3.setDisabledIcon(bild3);

            if (eins != 4) {

                eins++;
            } else {
                eins = 0;
            }

            bild1 = icons[eins];

            if (zwei <3) {

                zwei = zwei+2;
            } else {
                if(zwei == 3)
                {
                    zwei= 0;

                }
                else
                {
                    zwei= 1;
                }
            }
            bild2 = icons[zwei];
            if (drei != 0) {

                drei = drei-1;
            } else {
                drei = 4;
            }

            bild3 = icons[drei];

            jButton4.setDisabledIcon(bild1);
            jButton5.setDisabledIcon(bild2);
            jButton6.setDisabledIcon(bild3);

            if (eins != 4) {

                eins++;
            } else {
                eins = 0;
            }

            bild1 = icons[eins];

            if (zwei <3) {

                zwei = zwei+2;
            } else {
                if(zwei == 3)
                {
                    zwei= 0;

                }
                else
                {
                    zwei= 1;
                }
            }

            bild2 = icons[zwei];
            if (drei != 0) {

                drei = drei-1;
            } else {
                drei = 4;
            }

            bild3 = icons[drei];

            jButton7.setDisabledIcon(bild1);
            jButton8.setDisabledIcon(bild2);
            jButton9.setDisabledIcon(bild3);

            GewinnErmittelnWaag();
            anzeige.setText("Guthaben: " + guthaben);
            gewinn = guthaben - 200;
            Gewinnanzeige.setText("Gewinn: " + gewinn);
        }
        else
        {
            Textausgabe.setText("Game Over! Neues Spiel starten!");
            jButtonStarten.setEnabled(false);
            jButtonNeustart.setText("Spiel Neustarten");

        }


hab ich etz da nen denkfehler drin oder warum bleibt der startbutton auf false?
und unanklickbar :D

und auf membervariable hätte ich auch kommen müssen
langsam werd ich warm mit java
freunde sind wir zwar noch nich aber das wird schon werden

danke für deine hilfe

für die Highscoreliste hast du keine tipps?
 

Fu3L

Top Contributor
Das ist doch eigentlich nur die Methode für den Beenden/Neustarten Button. Wieso muss da auf das Guthabne hin überprüft werden? (Kann sein, dass es Sinn ergibt, wenn man den ganzen Code sieht, aber da würde ichs zum einen vermuten)

Zum Anderen musst du, wenn dus in dem einen Fall auf false setzt, in dem anderen Fall auch auf true setzen, sonst kann ein Status nicht mehr geändert werden.
Außerdem ist es sehr hinderlich den Button zu deaktivieren, weil wie soll man sonst das Spiel mit diesem Button neu starten?

Soll die Highscore dauerhaft gespeichert werden? Also mit Ablage auf der Festplatte?
 

The Ripper

Mitglied
der startbutton macht nur das sich die bilder ändern

ja wenn das guthaben 0 ist dann schreibt sich der button ja um auf neustarten und macht das guthaben wieder auf 200 also den startwert
dann soll er den spielbutton wieder freigeben
was er aber nicht macht er springt nichtmal in den else teil


Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import java.awt.Image;
import java.awt.Graphics;
import java.util.Random;

/**
 *
 * Beschreibung
 *
 * @version 1.0 vom 06.04.2011
 * @author
 */

public class Frame extends JFrame {
    // Anfang Attribute
    private JLabel anzeige;
    private JLabel Gewinnanzeige;
    private JLabel Textausgabe;
    ImageIcon[] icons =  {new ImageIcon("Icons/bart.gif"),new ImageIcon("Icons/car.gif"),new ImageIcon("Icons/nemo.gif"), new ImageIcon("Icons/7.gif"), new ImageIcon("Icons/pokeball.gif")};

    private JButton jButton1 = new JButton(icons[0]);
    private JButton jButton2 = new JButton(icons[0]);
    private JButton jButton4 = new JButton(icons[0]);
    private JButton jButton5 = new JButton(icons[0]);
    private JButton jButton3 = new JButton(icons[0]);
    private JButton jButton6 = new JButton(icons[0]);
    private JButton jButton7 = new JButton(icons[0]);
    private JButton jButton8 = new JButton(icons[0]);
    private JButton jButton9 = new JButton(icons[0]);

    private JButton jButtonNeustart = new JButton();
    private JButton jButtonStarten = new JButton();
    private Random zufall;
    private int guthaben;
    private int gewinn;
    private ImageIcon bild1;
    private ImageIcon bild2;
    private ImageIcon bild3;
    private String ImageIcon;
    private Boolean gamerunning;

    // Ende Attribute

    public Frame(String title) {
        // Frame-Initialisierung
        super(title);
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        int frameWidth = 937;
        int frameHeight = 990;
        setSize(frameWidth, frameHeight);
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        int x = (d.width - getSize().width) / 2;
        int y = (d.height - getSize().height) / 2;
        setLocation(x, y);
        Container cp = getContentPane();
        cp.setLayout(null);
        zufall = new Random();
        anzeige = new JLabel ("Guthaben:   " +  guthaben);
        guthaben = 200;
        Gewinnanzeige = new JLabel ("Gewinn:   " +  gewinn);
        Textausgabe = new JLabel("");
        

        //         ImageIcon car = new ImageIcon("Icons/car.gif");
        //         ImageIcon bart = new ImageIcon("Icons/bart.gif");
        //         ImageIcon nemo = new ImageIcon("Icons/nemo.gif");
        //         ImageIcon sieben = new ImageIcon("Icons/7.gif");
        //         ImageIcon pokeball = new ImageIcon("Icons/pokeball.gif");

        // 
        //         bild1= icons[eins];
        //         bild2= icons[zwei];
        //         bild3= icons[drei];

        jButton1.setBounds(218, 177, 150, 150);
        jButton1.setText("");
        jButton1.setMargin(new Insets(2, 2, 2, 2));
        jButton1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton1_ActionPerformed(evt);
                }
            });
        jButton1.setEnabled(false);

        cp.add(jButton1);
        jButton2.setBounds(367, 177, 150, 150);
        jButton2.setText("");
        jButton2.setMargin(new Insets(2, 2, 2, 2));
        jButton2.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton2_ActionPerformed(evt);
                }
            });
        jButton2.setEnabled(false);

        cp.add(jButton2);
        jButton4.setBounds(218, 326, 150, 150);
        jButton4.setText("");
        jButton4.setMargin(new Insets(2, 2, 2, 2));
        jButton4.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton4_ActionPerformed(evt);
                }
            });
        jButton4.setEnabled(false);

        cp.add(jButton4);
        jButton5.setBounds(367, 326, 150, 150);
        jButton5.setText("");
        jButton5.setMargin(new Insets(2, 2, 2, 2));
        jButton5.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton5_ActionPerformed(evt);
                }
            });
        jButton5.setEnabled(false);

        cp.add(jButton5);
        jButton3.setBounds(516, 177, 150, 150);
        jButton3.setText("");
        jButton3.setMargin(new Insets(2, 2, 2, 2));
        jButton3.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton3_ActionPerformed(evt);
                }
            });
        jButton3.setEnabled(false);

        cp.add(jButton3);
        jButton6.setBounds(516, 326, 150, 150);
        jButton6.setText("");
        jButton6.setMargin(new Insets(2, 2, 2, 2));
        jButton6.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton6_ActionPerformed(evt);
                }
            });
        jButton6.setEnabled(false);

        cp.add(jButton6);
        jButton7.setBounds(218, 475, 150, 150);
        jButton7.setText("");
        jButton7.setMargin(new Insets(2, 2, 2, 2));
        jButton7.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton7_ActionPerformed(evt);
                }
            });
        jButton7.setEnabled(false);

        cp.add(jButton7);
        jButton8.setBounds(367, 475, 150, 150);
        jButton8.setText("");
        jButton8.setMargin(new Insets(2, 2, 2, 2));
        jButton8.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton8_ActionPerformed(evt);
                }
            });
        jButton8.setEnabled(false);

        cp.add(jButton8);
        jButton9.setBounds(516, 475, 150, 150);
        jButton9.setText("");
        jButton9.setMargin(new Insets(2, 2, 2, 2));
        jButton9.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButton9_ActionPerformed(evt);
                }
            });
        jButton9.setEnabled(false);

        cp.add(jButton9);

        jButtonNeustart.setBounds(221, 756, 200, 80);
        jButtonNeustart.setText("Neustart");
        jButtonNeustart.setMargin(new Insets(2, 2, 2, 2));
        jButtonNeustart.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButtonNeustart_ActionPerformed(evt);
                }
            });
        cp.add(jButtonNeustart);
        jButtonStarten.setBounds(469, 756, 200, 80);
        jButtonStarten.setText("Spiel Starten");
        jButtonStarten.setMargin(new Insets(2, 2, 2, 2));
        jButtonStarten.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    jButtonStarten_ActionPerformed(evt);
                }
            });
        jButtonStarten.setEnabled(true);
        cp.add(jButtonStarten);
        anzeige.setBounds(301, 663, 294, 37);
        anzeige.setText("Guthaben:   " +  guthaben);
        anzeige.setFont(new Font("MS Sans Serif", Font.BOLD, 29));
        cp.add(anzeige);

        Gewinnanzeige.setBounds(281, 105, 306, 52);
        Gewinnanzeige.setText("Gewinn:  " + gewinn);
        Gewinnanzeige.setFont(new Font("MS Sans Serif", Font.PLAIN, 28));
        cp.add(Gewinnanzeige);

        Textausgabe.setBounds(206, 21, 650, 52);

        Textausgabe.setFont(new Font("MS Sans Serif", Font.PLAIN, 38));
        Textausgabe.setHorizontalAlignment(SwingConstants.CENTER);
        cp.add(Textausgabe);

        setResizable(false);
        setVisible(true);    // Anfang KomponentensetLayout(new BorderLayout());
        setLayout(new BorderLayout());

        // Ende Komponenten
    }

    // Anfang Methoden

    public void jButton1_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton2_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton4_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton5_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton3_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton6_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton7_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton8_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButton9_ActionPerformed(ActionEvent evt) {
        // TODO hier Quelltext einfügen
    }

    public void jButtonNeustart_ActionPerformed(ActionEvent evt) {

        if(guthaben <= 0)
        {
            guthaben = 200;
            anzeige.setText("Guthaben: " + guthaben);
            jButtonStarten.setEnabled(true);
        }
        else
        {
            if ( gamerunning = true)
            {
                gamerunning = false;
                jButtonStarten.setEnabled(false);
                Textausgabe.setText("Ihr gewonnener Betrag:" + gewinn );
                jButtonNeustart.setText("Spiel Neustarten");
                System.out.println("ifteil");
                
            }
            else
            {
                gamerunning = true;
                System.out.println("elseteil");
                jButtonStarten.setEnabled(true);
                guthaben = 200;
                anzeige.setText("Guthaben: " + guthaben);
                jButtonNeustart.setText("Spiel beenden!");
                
            }
            

        }

        //evtl Highscoreanbindung hier einfügen

    }

    public void jButtonStarten_ActionPerformed(ActionEvent evt) 
    {
       

        if(guthaben > 0)
        {
            gamerunning = true;
            guthaben= guthaben - 10;
            anzeige.setText("Guthaben: " + guthaben);
            Textausgabe.setText(" 10 Einsatz gesetzt");
            jButtonNeustart.setText("Spiel beenden!");

            int eins = zufall.nextInt(4);
            int zwei = zufall.nextInt(4);
            int drei = zufall.nextInt(4);

            bild1=icons[eins];
            bild2=icons[zwei];
            bild3=icons[drei];

            jButton1.setDisabledIcon(bild1);
            jButton2.setDisabledIcon(bild2);
            jButton3.setDisabledIcon(bild3);

            if (eins != 4) {

                eins++;
            } else {
                eins = 0;
            }

            bild1 = icons[eins];

            if (zwei <3) {

                zwei = zwei+2;
            } else {
                if(zwei == 3)
                {
                    zwei= 0;

                }
                else
                {
                    zwei= 1;
                }
            }
            bild2 = icons[zwei];
            if (drei != 0) {

                drei = drei-1;
            } else {
                drei = 4;
            }

            bild3 = icons[drei];

            jButton4.setDisabledIcon(bild1);
            jButton5.setDisabledIcon(bild2);
            jButton6.setDisabledIcon(bild3);

            if (eins != 4) {

                eins++;
            } else {
                eins = 0;
            }

            bild1 = icons[eins];

            if (zwei <3) {

                zwei = zwei+2;
            } else {
                if(zwei == 3)
                {
                    zwei= 0;

                }
                else
                {
                    zwei= 1;
                }
            }

            bild2 = icons[zwei];
            if (drei != 0) {

                drei = drei-1;
            } else {
                drei = 4;
            }

            bild3 = icons[drei];

            jButton7.setDisabledIcon(bild1);
            jButton8.setDisabledIcon(bild2);
            jButton9.setDisabledIcon(bild3);

            GewinnErmittelnWaag();
            anzeige.setText("Guthaben: " + guthaben);
            gewinn = guthaben - 200;
            Gewinnanzeige.setText("Gewinn: " + gewinn);
        }
        else
        {
            Textausgabe.setText("Game Over! Neues Spiel starten!");
            jButtonStarten.setEnabled(false);
            jButtonNeustart.setText("Spiel Neustarten");

        }

    }

    //     public String bildAuswahl(int n)
    //     {
    //         switch(n){
    //             case 0:
    //             return "Icons/car.gif";
    // 
    //             case 1:
    //             return "Icons/pokeball.gif";
    // 
    //             case 2:
    //             return "Icons/nemo.gif";
    // 
    //             case 3:
    //             return "Icons/bart.gif";
    // 
    //             case 4:
    //             return "Icons/7.gif"; 
    // 
    //             default:
    //             return "";
    //         }
    //     }

    public void GewinnErmittelnWaag()
    {
        if(jButton1.getDisabledIcon() == jButton2.getDisabledIcon() && jButton2.getDisabledIcon() == jButton3.getDisabledIcon())       
        {            
            System.out.println(jButton1.getDisabledIcon() + ":" + jButton2.getDisabledIcon() + ":" + jButton3.getDisabledIcon()); 
            guthaben = guthaben + 10*5 ;
            Textausgabe.setText("Sie haben 50 gewonnnen!!!");

        }  
        else
        {
            if(jButton4.getDisabledIcon() == jButton5.getDisabledIcon() && jButton5.getDisabledIcon() == jButton6.getDisabledIcon())
            {
                System.out.println(jButton4.getDisabledIcon() + ":" + jButton5.getDisabledIcon() + ":" + jButton6.getDisabledIcon()); 
                guthaben = guthaben + 10*5 ;
                Textausgabe.setText("Sie haben 50 gewonnnen!");
            }
            else{
                if(jButton7.getDisabledIcon() == jButton8.getDisabledIcon() && jButton8.getDisabledIcon() == jButton9.getDisabledIcon())       
                {            
                    System.out.println(jButton7.getDisabledIcon() + ":" + jButton8.getDisabledIcon() + ":" + jButton9.getDisabledIcon());
                    guthaben = guthaben + 10*5 ;
                    Textausgabe.setText(" Sie haben 50 gewonnnen!!");
                }  
                else
                {
                    GewinnErmittelnschr();
                }  

            }
        }
    } 

    public void GewinnErmittelnschr(){
        if(jButton1.getDisabledIcon() == jButton5.getDisabledIcon() && jButton5.getDisabledIcon() == jButton9.getDisabledIcon())       
        {            
            System.out.println(jButton1.getDisabledIcon() + ":" + jButton5.getDisabledIcon() + ":" + jButton9.getDisabledIcon()); 
            guthaben = guthaben + 10*10 ;
            Textausgabe.setText("Sie haben 100 gewonnnen!!!");

        }  
        else
        {if(jButton7.getDisabledIcon() == jButton5.getDisabledIcon() && jButton5.getDisabledIcon() == jButton3.getDisabledIcon())       
            {            
                System.out.println(jButton7.getDisabledIcon() + ":" + jButton5.getDisabledIcon() + ":" + jButton3.getDisabledIcon()); 
                guthaben = guthaben + 10*10 ;
                Textausgabe.setText("Sie haben 100 gewonnnen!!!");
            }  
            else{
                System.out.println("Leider kein Gewinn");
                Textausgabe.setText(" Leider kein Gewinn");

            }
        }
    }

    // Ende Methoden

    public static void main(String[] args) {
        new Frame("Frame");

    }

}

was wäre einfacher ich hätte am liebsten sowas wo man seinen namen eintragen kann und die erspielten punkte übertragen werden

von 1-10 also die top ten
in was würdest dus am besten speichern?
.txt?
 

Fu3L

Top Contributor
ja wenn das guthaben 0 ist dann schreibt sich der button ja um auf neustarten und macht das guthaben wieder auf 200 also den startwert
dann soll er den spielbutton wieder freigeben
was er aber nicht macht er springt nichtmal in den else teil

Der Button ändert sich nicht, weil diese Methode (die zuvor schon gepostete) nur aufgerufen wird, wenn der Button gedrückt wird ;)
Das Guthaben müsstest du in der Methode prüfen, in der das Ergebnis der letzten Runde ermittelt wird.

txt bietet sich an oder xml. xml hab ich bisher nur über eine externe Bibliothek genutzt (JDom), also vllt am besten wirklich txt. Such mal nach sowas wie FileWriter oder Scanner. Ich weiß gerade leider nicht, was dafür die besten Klassen sind und muss gleich weg, aber du solltest dich sowieso erst einmal um das Allgemeine kümmern.
Heute Nacht lese ich auch den Quelltext noch einmal genauer^^
 

The Ripper

Mitglied
aber ich klick den doch immer ;)
beim ersten klick is das guthaben noch größer 0 dann bleibt er im else und dann in den if

etz beim 2ten klicken müsste er weil doch gamerunning auf false gesetzt wird dann in else teil 2 springen oder nicht?
und da wird der button wieder freigegeben
 

Fu3L

Top Contributor
Java:
    public void jButtonNeustart_ActionPerformed(ActionEvent evt) {

         if ( gamerunning == true)
            {
                gamerunning = false;
                jButtonStarten.setEnabled(false);
                Textausgabe.setText("Ihr gewonnener Betrag:" + gewinn );
                jButtonNeustart.setText("Spiel Neustarten");
                System.out.println("ifteil");
                
            }
            else
            {
                gamerunning = true;
                System.out.println("elseteil");
                jButtonStarten.setEnabled(true);
                guthaben = 200;
                anzeige.setText("Guthaben: " + guthaben);
                jButtonNeustart.setText("Spiel beenden!");
                
            }
            
 
 
        //evtl Highscoreanbindung hier einfügen
 
    }

So müsste es funktionieren. Was habe ich geändert? Den Teil mit dem Guthaben rausgenommen, weil der logisch woanders reingehört und gamerunning == true beim Vergleich ;)
Die Zuweisung gamerunning = true ist immer true^^

PS: Hast du einen gewaltigen Bildschirm oder wie kannst du dieses Programm bedienen? Ich musste erstmal an den Maßen und Positionierungen rumbasteln^^

Edit: Ich hab nochn bisschen dran rumgedoktort, weil es bei mir immer noch seltsames Verhalten zeigt.. unter Anderem NullPointerExceptions.. Die kommen daher, dass die Variabel gamerunning vom Typ Boolean ist anstatt von boolean. Du musst den primitiven Datentyp wählen ;) Desweiteren würde ich es zu Beginn auf true setzen.

Edit2: Werden dir die Bilder angezeigt?^^ Ich musste erst einmal eine meiner Bilder-lade-klassen bemühen, um die von mir zu testzwecken gespeicherten Bilder zu laden (allerdings fand ich diese Notwendigkeit auch seltsam^^ ???:L)
 
Zuletzt bearbeitet:

Fu3L

Top Contributor
ja :D ich habe sogar 2 nebeneinander :D
deswegen ;)
2 mal 30 zoll :D

also bei mir läd der die bilder sofort ;)

oke und des mit nur einem = war doof sry

Ok, das erklärts^^ Mein Notebook mit 15,6" Widescreen mag halt nur bis 768 Pixel in der Höhe^^
Das mit dem einen gleich war übrigends mein erster Programmierfehler^^ :D (wenn man HTML und CSS nicht als richtiges Programmieren zählt^^)

Edit: Darfst auch gerne noch ein Foren-Danke vergeben, dann wirke ich kompetent :cool: :D :oops:
 

Fu3L

Top Contributor
Das stimmt. Nachlesne kann man es hier:

Galileo Computing :: Java ist auch eine Insel – 17 Datenströme

Da es aber recht umfangreich ist und man am Ende nur ein paar Zeilen braucht, habe ich mal die einzige Klasse mit der ich bisher ein Textfile erzeugt hab, rausgesucht:

Java:
Random rnd = new Random();
	
	public MakeCSVFile() {
	
		Scanner sc = null;
		
		try {
			String path = ("D:/Anfangsdatei.txt");
			File f = new File(path);
			sc = new Scanner(f);
		} catch(Exception ex) {
			ex.printStackTrace();
			System.exit(0);
		}	
		
		PrintWriter fos = null;
		try {
			fos = new PrintWriter(new FileOutputStream(new File("D:/Ausgabe.txt")), true); 
		} catch(Exception ex) { ex.printStackTrace(); }
		
		//Zeilenweises einlesen und direkt neu-schreiben der Datei:
		while(sc.hasNextLine()) {
			
			String nextLine = sc.nextLine();
			
			String[] name = nextLine.split(",");
			
			String pw = "";
			//Passwort zusammenbasteln
			for(int i = 0; i < 6; i++) {
				if(rnd.nextInt(2) == 0) {
					pw += rnd.nextInt(10);
				} else {
					//char[] c = Character.toChars(rnd.nextInt(57) + 66);
					int x = rnd.nextInt(57) + 66;
					if(x > 90 && x < 97) { x += 10; }
					char[] c = Character.toChars(x);
					pw += c[0];
				}
			} //end for()
			String newLine = name[0] + " " + name[1] + ": " + pw;
			fos.println(newLine);
		}	
		sc.close();
	}

Erzeugt aus einer Liste, in der jede Zeile mit Vorname, Nachname belegt ist, eine neue Datei, deren Zeilen Vorname Nachname: Passwort enthalten^^ Einfach mal in "Java ist auch eine Insel" oder der API der Klasse Scanner weitere Details nachlesen, wenn was unklar ist^^ (Sollte man auch mit Vertraut werden ;))

Edit: Ein fos.close() am Ende dürfte auch noch nützlich sein^^
 
Zuletzt bearbeitet:

The Ripper

Mitglied
wie definier ich dann vorname nachname?

bei mir funktioniert es etz zu compailen ohne fehlermeldung mit den ganzen imports
aber iwas aus führen tut die funktion nich :D
beim beenden
 

Fu3L

Top Contributor
Du musst das schon für dich anpassen^^ Das war lediglich die Erklärung was es tut und du musst es jetzt umwandeln. Im einfachsten Fall mit dem Auslesen aller vorigen Highscores und danach ersetzen des schlechtesten durch den neuen Highscore (sofern es eine Platzbegrenzung gibt und das neue Ergebnis groß genug ist) und Neuschreiben der Datei. Alle Werkzeuge, die du dafür brauchst, kennst du oder stehen im obigen Beispiel erklärt^^
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Bilder werden unscharf angezeigt Spiele- und Multimedia-Programmierung 5
S Bilder Für Schachfiguren Spiele- und Multimedia-Programmierung 14
beatles Minesweeper - keine Bilder Spiele- und Multimedia-Programmierung 3
P [Spiel]Welche Bilder sind gleich Spiele- und Multimedia-Programmierung 2
O Bilder senden TV über DLNA? Spiele- und Multimedia-Programmierung 0
T Bilder Elegant darstellen... Spiele- und Multimedia-Programmierung 7
T Bilder einbinden, bzw. ändern Spiele- und Multimedia-Programmierung 5
M Bilder effizient speichern/serialisieren Spiele- und Multimedia-Programmierung 10
M Bilder in Java Spiele- und Multimedia-Programmierung 7
D Slick Lib - Bilder einlesen funktioniert nicht Spiele- und Multimedia-Programmierung 2
B Bilder in GUI ändern ohne repaint() Spiele- und Multimedia-Programmierung 6
A Bilder werden nicht geladen Spiele- und Multimedia-Programmierung 6
S Datenbank gesucht für Bilder(gif-dateien) Spiele- und Multimedia-Programmierung 5
A Bilder (auf JPanels) auf komplette Zellengröße (GridBagLayout) skalieren Spiele- und Multimedia-Programmierung 2
I Bilder aus Quaxli's Tutorial Spiele- und Multimedia-Programmierung 3
A bilder performant und unhässlich skalliert darstellen? Spiele- und Multimedia-Programmierung 10
A 2 Bilder übereinander legen Spiele- und Multimedia-Programmierung 15
J 2D-Bilder in Java3D Spiele- und Multimedia-Programmierung 4
A Bilder(BMP) speichern Spiele- und Multimedia-Programmierung 2
S Bilder zuscheiden - Werte von php übergeben Spiele- und Multimedia-Programmierung 7
D Bilder besser interpolieren Spiele- und Multimedia-Programmierung 4
F Dynamische Bilder erzeugen? Spiele- und Multimedia-Programmierung 7
R Bilder aus animierter .gif extrahieren? Spiele- und Multimedia-Programmierung 4
C jpg.Bilder teilen/bearbeiten für Puzzle Spiele- und Multimedia-Programmierung 7
A Bilder bewegen Spiele- und Multimedia-Programmierung 2
M Bilder verzerren [Rechteck -> Trapez] Spiele- und Multimedia-Programmierung 4
K Bilder drehen Spiele- und Multimedia-Programmierung 5
H Bilder speichern 2 - Methode richten? Spiele- und Multimedia-Programmierung 2
H Bilder speichern Spiele- und Multimedia-Programmierung 3
A Bilder flackern Spiele- und Multimedia-Programmierung 5
T Gekachelte Bilder darstellen Spiele- und Multimedia-Programmierung 2
J wav Dateien vergleichen Spiele- und Multimedia-Programmierung 3
J mp3 vergleichen Spiele- und Multimedia-Programmierung 3
A Multidimensionler Array - Elemente vergleichen (TicTacToe) Spiele- und Multimedia-Programmierung 4
A Patter Array Eintrag vergleichen geht nicht!!! Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben