T
TomKha
Gast
Moinmoin Jungs,
ich habe mir hier gerade ein Hangman Applet geschrieben
Dieses funktioniert auch so wie es soll, aber ich will gerne noch Bilder einbinden.
Ich habe einen Fehlerzähler und wenn dieser =1 soll ein Bild kommen auf dem der Anfang des Galgens zu sehen ist. Fehlerzähler = 2 nächstes Bild Galgen fortgeschritten usw bis 9.
Wie kann ich das machen?
Kann mir da jemand unter die Arme greifen.
ich habe mir hier gerade ein Hangman Applet geschrieben
Dieses funktioniert auch so wie es soll, aber ich will gerne noch Bilder einbinden.
Ich habe einen Fehlerzähler und wenn dieser =1 soll ein Bild kommen auf dem der Anfang des Galgens zu sehen ist. Fehlerzähler = 2 nächstes Bild Galgen fortgeschritten usw bis 9.
Wie kann ich das machen?
Kann mir da jemand unter die Arme greifen.
Java:
import java.util.ArrayList;
import java.io.BufferedReader;
import java.io.FileReader;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
//@author (Marco Johannes)
public class main
{
static JTextField eingabeFeld;
static JTextArea ausgabeFeld;
static JLabel[] label;
static int buchstabenAnzahl;
static String wort;
static int gemachteFehler = 0;
static int maxFehler = 9;
public static void main(String[] args)
{
String wort = auslesen();
oberflaecheErstellen(wort);
}
public static String auslesen()
{
ArrayList<String>woerterListe = new ArrayList<String>();
try {
BufferedReader reader = new BufferedReader(new FileReader("..\\Woerter.txt"));
String zeile;
while ((zeile = reader.readLine()) != null) {
woerterListe.add(zeile);
}
}
catch (Exception e) {
//Ignoriere alle Exceptions
}
String[] woerter = new String[woerterListe.size()];
woerterListe.toArray(woerter);
String wort = woerter[(int) (Math.random() * woerter.length)];
return (wort);
}
public static void oberflaecheErstellen(String str)
{
JFrame fenster = new JFrame ("Fenster");
fenster.setResizable(false);
fenster.setLayout(new BorderLayout());
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
wort = str;
buchstabenAnzahl = wort.length();
JPanel panel1 = new JPanel (new GridLayout (0, buchstabenAnzahl));
label = new JLabel [buchstabenAnzahl];
for (int zaehler = 0; zaehler < buchstabenAnzahl; zaehler++) {
String buchstabe = Character.toString(wort.charAt(zaehler));
label[zaehler] = new JLabel (buchstabe, JLabel.CENTER);
label[zaehler].setForeground(Color.black);
label[zaehler].setVisible(false);
panel1.add(label[zaehler]);
}
//Eingabefeld Ausgabefeld
eingabeFeld = new JTextField(1);
fenster.add(eingabeFeld, BorderLayout.SOUTH);
ausgabeFeld = new JTextArea("");
ausgabeFeld.setEditable(false);
JScrollPane schiebeBalken = new JScrollPane(ausgabeFeld);
fenster.getContentPane().add(schiebeBalken);
fenster.add(ausgabeFeld, BorderLayout.CENTER);
eingabeFeld.addKeyListener (new KeyAdapter()
{
public void keyPressed(KeyEvent tastenDruck) {
int tastenCode = tastenDruck.getKeyCode();
if (tastenCode == KeyEvent.VK_ENTER & (gemachteFehler != maxFehler)) {
String eingabe = eingabeFeld.getText();
if (!eingabe.equals("")) {
eingabeFeld.setText("");
Character buchstabe = eingabe.charAt(0);
int[] stellen = pruefen(wort, buchstabe);
if (stellen.length != 0) {
for (int zaehler = 0; zaehler < stellen.length; zaehler++) {
label[stellen[zaehler]].setVisible(true);
}
}
else {
ausgabeFeld.append("\n " + (gemachteFehler+1) + ". Fehler: '" + Character.toString(buchstabe) + "'");
gemachteFehler++;
}
if (gemachteFehler == maxFehler) {
ausgabeFeld.append("\n Aus und vorbei!\n Das Wort war: " + wort);
eingabeFeld.setEditable(false);
}
}
else if (eingabe.equals("")) {
ausgabeFeld.append("\n Du musst schon was eingeben!");
}
}
}
}
);
fenster.add(panel1, BorderLayout.NORTH);
fenster.pack();
fenster.setSize(800, 600);
fenster.setVisible(true);
}
public static int[] pruefen(String wort, char buchstabe)
{
ArrayList<Integer> stellen = new ArrayList<Integer>();
for (int zaehler = 0; zaehler < wort.length(); zaehler++) {
if (wort.charAt(zaehler) == buchstabe) {
stellen.add(zaehler);
}
}
int[] rueckgabe = new int[stellen.size()];
for (int zaehler = 0; zaehler < stellen.size(); zaehler++) {
rueckgabe[zaehler] = stellen.get(zaehler);
}
return (rueckgabe);
}
}