Game of Life Problem

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Game of Life Problem

    Hallo,
    ich versuche zur Zeit Game of Life zu programmieren. Alles ist in 3 Klassen aufgeteilt, das Zellenfeld, die Zelle und das Programm. Mein aktuelles Programm besteht darin, dass sich keine Zelle zeichnet. Ohne das Zeichnen kann ich schlecht weitermachen, da mir das Zeichen ja auch Fehler bei den Simulationsschritten zeigt...

    Hier die Quellcodes:

    Programm:

    Quellcode

    1. import java.awt.event.ActionEvent;
    2. import java.awt.event.ActionListener;
    3. import javax.swing.*;
    4. public class Anwendung extends JFrame{
    5. tZellhaufen spielBrett;
    6. JTextField edit2;
    7. JTextField edit1;
    8. public Anwendung() {
    9. setTitle("Swing-Programm");
    10. // setLayout(null);
    11. JTabbedPane tabPane = new JTabbedPane();
    12. spielBrett = new tZellhaufen(20,20);
    13. spielBrett.setLayout(null);
    14. spielBrett.setSize(510,510);
    15. spielBrett.setLocation(0,0);
    16. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    17. JButton btn = new JButton("Sim");
    18. btn.setSize(80,30);
    19. btn.setLocation(200,530);
    20. btn.addActionListener(new ActionListener(){
    21. public void actionPerformed(ActionEvent e) {
    22. for(int i =0;i< (Integer.parseInt(edit1.getText()));i++){
    23. spielBrett.simSchritt();
    24. spielBrett.paint(spielBrett.getGraphics());
    25. // try{
    26. // Thread.sleep(100);
    27. // }
    28. // catch (InterruptedException l){}
    29. }
    30. }
    31. });
    32. spielBrett.add(btn);
    33. tabPane.add(spielBrett,"Spielbrett");
    34. // Option Panel
    35. JPanel optionen = new JPanel();
    36. optionen.setLayout(null);
    37. JLabel label1= new JLabel("Anzahl an Iterationen: ");
    38. label1.setLocation(10,10);
    39. label1.setSize(140,15);
    40. optionen.add(label1);
    41. edit1 = new JTextField("1");
    42. edit1.setLocation(150,10);
    43. edit1.setSize(80,15);
    44. optionen.add(edit1);
    45. JLabel label2 = new JLabel("Anzahl an Spalten/Zeilen: ");
    46. optionen.add(label2);
    47. label2.setLocation(10,30);
    48. label2.setSize(140,15);
    49. edit2 = new JTextField("1");
    50. edit2.setLocation(150,30);
    51. edit2.setSize(80,15);
    52. optionen.add(edit2);
    53. tabPane.add(optionen,"Optionen");
    54. getContentPane().add(tabPane);
    55. }
    56. public static void main(String[] args) {
    57. Anwendung hauptFenster = new Anwendung();
    58. hauptFenster.setSize(800,630);
    59. hauptFenster.setLocation(100,100);
    60. hauptFenster.setVisible(true);
    61. }
    62. }
    Alles anzeigen



    die Zelle:

    Quellcode

    1. import java.awt.*;
    2. /**
    3. * import-Liste
    4. * ggf. weiter von Hand anpassen
    5. */
    6. public class tZelle {
    7. /**
    8. * Attribute der Klasse
    9. */
    10. /**
    11. */
    12. public boolean zZustand;
    13. /**
    14. */
    15. public final int cGroesse = 10;
    16. /**
    17. */
    18. public int zPosX;
    19. /**
    20. */
    21. public int zPosY;
    22. /**
    23. * Attribute die aus Beziehungen resultieren
    24. */
    25. /**
    26. * tZelle: Methoden
    27. */
    28. /********* tzelle (public) *******************************************/
    29. public tZelle (int pX, int pY)
    30. {
    31. zPosX=pX;
    32. zPosY=pY;
    33. zZustand=false;
    34. }
    35. /********* zeigeDich (public) *******************************************/
    36. public void zeigeDich(Graphics zeichenFlaeche)
    37. {
    38. zeichenFlaeche.setColor(Color.WHITE);
    39. zeichenFlaeche.fillRect(zPosX,zPosY,cGroesse,cGroesse);
    40. zeichenFlaeche.setColor(Color.BLACK);
    41. zeichenFlaeche.drawRect(zPosX,zPosY,cGroesse,cGroesse);
    42. }
    43. /********* getGroesse (public) *****************************************/
    44. public int getGroesse()
    45. {
    46. return cGroesse;
    47. }
    48. /********* getPosx (public) ********************************************/
    49. public int getPosx()
    50. {
    51. return zPosX;
    52. }
    53. /********* getPosy (public) ********************************************/
    54. public int getPosy()
    55. {
    56. return zPosY;
    57. }
    58. /********* getZustand (public) *****************************************/
    59. public boolean getZustand()
    60. {
    61. return zZustand;
    62. }
    63. }
    Alles anzeigen



    Zellhaufen:

    Quellcode

    1. import java.awt.*;
    2. import javax.swing.*;
    3. import java.awt.event.*;
    4. import java.util.*;
    5. public class tZellhaufen extends JPanel {
    6. private int anzahl=50;
    7. tZelle[][] spielFeld;
    8. private int zZeilen;
    9. private int zSpalten;
    10. tZelle meineZelle;
    11. public tZellhaufen (int pZeilen, int pSpalten)
    12. {
    13. pZeilen = zZeilen;
    14. pSpalten = zSpalten;
    15. spielFeld = new tZelle(meineZelle.getGroesse(),meineZelle.getGroesse());
    16. this.paint(this.getGraphics());
    17. }
    18. public void paintComponent(Graphics g)
    19. {
    20. super.paintComponent(g);
    21. for ( int i = 0; i < zZeilen; i++){
    22. for(int j = 0; j < zSpalten; j++){
    23. spielFeld[i][j].zeigeDich(g);
    24. }
    25. }
    26. }
    27. public void simSchritt()
    28. {
    29. }
    30. /*
    31. public void zeigeSpielfeld()
    32. {
    33. for (int i=0;i<zZeilen;i++)
    34. {
    35. for (int j=0;j<zSpalten;j++)
    36. {
    37. meineZelle.zeigeDich(null);
    38. }
    39. }
    40. }
    41. */
    42. }
    Alles anzeigen




    Danke für Alle antworten!