000
27.02.2005, 15:54 Uhr
Sloth
|
HI. Ich versuch mich jetzt seit n 2,3Wochen mal mit ner kleinen Anwendung. Wenns fertig is soll es irgendwann mal Hangman werden
Mein Problem, was ich momantan habe ist, dass ich an einer stelle eine class aufrufe, die zeile davor und dahinter ausgeführt wird, aber nicht die class....
erstmal der Code:
Code: |
import java.io.*; import java.awt.*; import java.awt.event.*; import javax.swing.*;
class game extends Frame { TextField eingabefeld = new TextField(); Button gameOk = new Button("Ok"); Button gameAdvise = new Button("Wort erraten"); Button gameClose = new Button("Schließen"); Label gamehangman = new Label("Hangman 3.0"); Frame lengthErrorFrame = new Frame("Fehler"); Button lengthErrorFrameClose = new Button("Schließen"); Label lengthErrorFrameLabel = new Label("Min./Max. einen"); Label lengthErrorFrameLabel2 = new Label("Buchstaben eingeben"); Frame WinRandomWord = new Frame("WIN!!!"); Button WinRandomWordClose = new Button("Schließen"); String hilfString="*"; String StarString = new String("*"); String RandomWord = ""; String OwnWord = ""; String TextfieldWord= ""; int[] starsIntArray = new int[100]; Label StarLabel = new Label(StarString);
//############################################################################### class Podium extends Canvas { public void paint(Graphics g){ g.drawString("bla",10,10); System.out.println("in Podium"); } } //''#############################################################################
//############################################################################### class StarWord extends Canvas{ public void paint(Graphics g){ g.drawString("xx",100,100); System.out.println("StarWord"); } } //############################################################################### private class ActionLengthErrorFrameClose implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent event) { lengthErrorFrame.setVisible(false); eingabefeld.setText(""); } } //############################################################################### private class ActionWinRandomWordClose implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent event) { eingabefeld.setText(""); System.exit(0); } } //############################################################################### public void richtig(int GameArt) { setVisible(false); switch(GameArt) { case 1: { break; } case 2: { Label WinRandomWordLabel = new Label("Richtig!!! Das Wort war: \"" + RandomWord+"\""); WinRandomWord.setSize(300,300); WinRandomWord.setLayout(null); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); WinRandomWord.setBackground(Color.blue); WinRandomWord.setLocation((d.width - WinRandomWord.getSize().width) / 2, (d.height - WinRandomWord.getSize().height) / 2); WinRandomWordClose.setSize(80,20); WinRandomWordClose.setLocation(105,265); WinRandomWord.add(WinRandomWordClose); WinRandomWordLabel.setSize(290,30); WinRandomWordLabel.setLocation(5,50); WinRandomWord.add(WinRandomWordLabel); WinRandomWord.setFont(new Font("Courier",Font.BOLD,15)); WinRandomWord.setVisible(true); WinRandomWordClose.addActionListener(new ActionWinRandomWordClose());
System.out.println("vor Podium"); WinRandomWord.add("Center",new Podium()); System.out.println("nach Podium"); break; } } } //############################################################################### public void loese() { if(RandomWord.equals(eingabefeld.getText())) richtig(2); } //############################################################################### private class ActionGameAdvise implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent event) { loese(); } } //############################################################################### public void raten(int GameArt) { String Buchstabe = eingabefeld.getText(); boolean contain = false; switch(GameArt) { case 1: { break; } case 2: { String eingabefeldtext=eingabefeld.getText(); for(int n =0; n <RandomWord.length();n++) if(RandomWord.charAt(n) == eingabefeldtext.charAt(0)) { contain=true; System.out.println("Buchstabe "+ eingabefeldtext.charAt(0) +" ist im Wort enthalten"); } break; } } }
//############################################################################### public void wortlaenge() { int laenge= eingabefeld.getText().length(); if(laenge!=1) { lengthErrorFrame.setFont(new Font("Courier",Font.BOLD,15)); lengthErrorFrame.setLayout(null); lengthErrorFrame.setSize(200,200); lengthErrorFrame.setBackground(Color.red); lengthErrorFrameClose.setSize(80,20); lengthErrorFrameClose.setLocation(60,175); lengthErrorFrame.add(lengthErrorFrameClose); lengthErrorFrameClose.addActionListener(new ActionLengthErrorFrameClose()); lengthErrorFrameLabel.setSize(190,15); lengthErrorFrameLabel.setLocation(10,65); lengthErrorFrame.add(lengthErrorFrameLabel); lengthErrorFrameLabel2.setSize(190,20); lengthErrorFrameLabel2.setLocation(10,80); lengthErrorFrame.add(lengthErrorFrameLabel2); lengthErrorFrame.setVisible(true); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); lengthErrorFrame.setLocation((d.width - lengthErrorFrame.getSize().width) / 2, (d.height - lengthErrorFrame.getSize().height) / 2); this.addWindowListener ( new WindowAdapter() { public void windowClosing(WindowEvent e) { lengthErrorFrame.setVisible(false); } } ); } } //############################################################################### private class ActionGameClose implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent event) { System.exit(0); } } //############################################################################### private class ActionGameOk implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent event) { wortlaenge(); int fehler = 0; System.out.println(eingabefeld.getText()); raten(2); System.out.println("Vor StarWord"); add(new StarWord()); System.out.println("Hinter StarWord"); setVisible(false); setVisible(true); } } //############################################################################### public game(String Randomwordin) { RandomWord = Randomwordin; setSize(500,500); setLocation(180,80); setTitle("Hangman 3.0"); setBackground(Color.blue); setForeground(Color.white); starsIntArray[RandomWord.length()] = 2; for(int z =0;z<RandomWord.length()-1;z++) StarString += "*"; StarLabel.setText(StarString); StarLabel.setSize(90,100); StarLabel.setLocation(60,60); add(StarLabel); System.out.println(" "+StarString); gameClose.addActionListener(new ActionGameClose()); gameOk.addActionListener(new ActionGameOk()); gameAdvise.addActionListener(new ActionGameAdvise()); char[] buchstaben = new char[RandomWord.length()]; for(int a =0;a<RandomWord.length();a++) buchstaben[a] ='*'; setLayout(null); setForeground(Color.black); setFont(new Font("Courier",Font.BOLD,25)); eingabefeld.setBackground(Color.blue); eingabefeld.setSize(490,40); gameOk.setSize(490,40); gameAdvise.setSize(490,40); gameClose.setSize(490,40); gamehangman.setSize(190,40); eingabefeld.setLocation(5,325); gameOk.setLocation(5,375); gameAdvise.setLocation(5,415); gameClose.setLocation(5,455); gamehangman.setLocation(150,20); add(gameOk); add(gameAdvise); add(gameClose); add(eingabefeld); add(gamehangman); setVisible(true); } }
|
In der Methode richtig ende case 2 rufe ich ja podium auf. Die ausgabe vor podium erscheint noch dann kommt aber direkt nach podium
und nicht in podium. Ich weiß nicht wo der fehler ist, an einer anderen stelle, in einer anderen datei funktioniert das alles fehlerfrei
Diese Datei "game.java" wird nach ein paar eingaben gestartet. Ich kann alles fehlerfrei Compillieren, aber wie gesagt, die Klasse wird winfach nicht ausgeführt. Ich hab schon mal alle Dateien gelöscht und in einem anderem Pfad neu angelegt, aber das ganze bleibt so. |