tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
858
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    dsone dsone ist offline Rookie
    Registriert seit
    Apr 2004
    Beiträge
    5
    Hi,
    Ich muss als Aufgabe, für die Schule, einen Lottozahlengenerator basteln. Der Code muss mind. 200 Zeilen lang sein, daher habe ich soviel Design Boxen gemacht.

    Jetzt meine Frage: wie bekomme ich einen Button unter die Lottozahlen, der das Fenster aktualisiert und somit neue Zahlen generiert?

    Wäre so froh wenn mir hier jemand helfen könnte, bei google und forum suche leider nicht brauchbares gefunden.

    Gruss und Danke
    dsone

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    
    import java.awt.*;
     
    public class lotto extends Frame {
        
     
    public static void main(String[] args) {
        
        lotto lottofenster = new lotto();
        
        /***************************
        *** Fenstereigenschaften ***
        ****************************/
        
        // Titel des Lottofensters
        lottofenster.setTitle("Lottozahlengenerator");
        
        // Hintergrundfarbe des Lottofensters
        lottofenster.setBackground(new java.awt.Color(7,108,190));
        
        // Cursor (Fadenkreuz) des Lottofensters
        lottofenster.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.CROSSHAIR_CURSOR));
        
        // Grösse des Lottofensters
        lottofenster.setSize(400,450);
        
        // Lottofenster sichtbar? Ja!
        lottofenster.setVisible(true);      
     
    }
     
    public void paint(Graphics g) {
        
        int lottozahlen;                                                    // Variable fuer die Lottozahlen
        int lottozahlen_pruefen;                                            // Variable fuer das pruefen der Lottozahlen
        int anzahl;                                                         // Variable fuer Anzahl der Lottozahlen
        int ganze_zahl;
        
        double wert;
        boolean doppelt;
        
        anzahl = 6;                                                         // Wert 6, für 6 Lottozahlen
        
        int lottozahl[] = new int[anzahl+1];                                // Deinition eines Feldes mit einem Platz mehr
        for (lottozahlen = 1; lottozahlen <= anzahl; lottozahlen++)             // Anzahl der Zufallszahlen
        {
            do                                                              // Schleife zur Feststellung von Doppelungen
            {
                doppelt = false;                                                // Es gibt zunächst keine Doppelten
                wert = 44*Math.random()+1;                                  // Erzeuge eine Zufallszahl zwischen 1 und 45
                ganze_zahl = (int)wert;                                     // Mache daraus eine ganze Zahl
                
                for (lottozahlen_pruefen = 1; lottozahlen_pruefen < lottozahlen; lottozahlen_pruefen++)         // alle bisherigen (i) überprüfen
                {
                    if (ganze_zahl == lottozahl[lottozahlen_pruefen])
                    {
                        doppelt=true;                                       // doppelte gefunden, merken in doppelt
                    }   
                
                }
            }
            
            while (doppelt==true);
            lottozahl[lottozahlen]=ganze_zahl;                                  // gefundene Zahlmerken
            System.out.print(+lottozahl[lottozahlen]+"\t");                 // und diese ausgeben       
        }
        
        Button myButton = new Button ("Ein Button");
        this.add(myButton);
        
        String lottozahl_1 = Integer.toString(lottozahl[1]);
        String lottozahl_2 = Integer.toString(lottozahl[2]);
        String lottozahl_3 = Integer.toString(lottozahl[3]);
        String lottozahl_4 = Integer.toString(lottozahl[4]);
        String lottozahl_5 = Integer.toString(lottozahl[5]);
        String lottozahl_6 = Integer.toString(lottozahl[6]);
        
        /***************************
        *** Background BOX       ***
        ****************************/
        
        g.setColor(new Color(118,190,250));                                 //
        g.fillRect(14,34,242,42);                                           // 
        
        g.setColor(new Color(21,146,247));                                  //
        g.fillRect(15,35,240,40);                                           // 
        
        
        /***************************
        *** BOX 1                ***
        ****************************/
        
        g.setColor(Color.BLACK);                                            // Schwarzes Rechteck von Box 1
        g.fillRect(20,40,30,30);                                            // Grösse von schwarzen Box 1
        g.setColor(Color.LIGHT_GRAY);                                       // Hellgraues Rechteck von Box 1
        g.fillRect(21,41,28,28);                                            // Grösse von hellgrauer Box 1
        g.setColor(Color.WHITE);                                            // Weisses Rechteck von Box 1
        g.fillRect(22,42,26,26);                                            // Grösse von weisser Box 1
        
        g.setColor(Color.BLACK);                                            // Farbe der Schrift (Schwarz)
        g.drawString(lottozahl_1, 27, 60);                                  // Lottozahl 1 in der Box 1 zeichnen
        
        /***************************
        *** BOX 2                ***
        ****************************/
        
        g.setColor(Color.BLACK);                                            // Schwarzes Rechteck von Box 2
        g.fillRect(60,40,30,30);                                            // Grösse von schwarzen Box 2
        g.setColor(Color.LIGHT_GRAY);                                       // Hellgraues Rechteck von Box 2
        g.fillRect(61,41,28,28);                                            // Grösse von hellgrauer Box 2
        g.setColor(Color.WHITE);                                            // Weisses Rechteck von Box 2
        g.fillRect(62,42,26,26);                                            // Grösse von weisser Box 2
        
        g.setColor(Color.BLACK);                                            // Farbe der Schrift (Schwarz)
        g.drawString(lottozahl_2, 67, 60);                                  // Lottozahl 2 in der Box 2 zeichnen
        
        /***************************
        *** BOX 3                ***
        ****************************/
        
        g.setColor(Color.BLACK);                                            // Schwarzes Rechteck von Box 3
        g.fillRect(100,40,30,30);                                           // Grösse von schwarzen Box 3
        g.setColor(Color.LIGHT_GRAY);                                       // Hellgraues Rechteck von Box 3
        g.fillRect(101,41,28,28);                                           // Grösse von hellgrauer Box 3
        g.setColor(Color.WHITE);                                            // Weisses Rechteck von Box 3
        g.fillRect(102,42,26,26);                                           // Grösse von weisser Box 3
        
        g.setColor(Color.BLACK);                                            // Farbe der Schrift (Schwarz)
        g.drawString(lottozahl_3, 107, 60);                                 // Lottozahl 3 in der Box 3 zeichnen
        
        /***************************
        *** BOX 4                ***
        ****************************/
        
        g.setColor(Color.BLACK);                                            // Schwarzes Rechteck von Box 4
        g.fillRect(140,40,30,30);                                           // Grösse von schwarzen Box 4
        g.setColor(Color.LIGHT_GRAY);                                       // Hellgraues Rechteck von Box 4
        g.fillRect(141,41,28,28);                                           // Grösse von hellgrauer Box 4
        g.setColor(Color.WHITE);                                            // Weisses Rechteck von Box 4
        g.fillRect(142,42,26,26);                                           // Grösse von weisser Box 4
        
        g.setColor(Color.BLACK);                                            // Farbe der Schrift (Schwarz)
        g.drawString(lottozahl_4, 147, 60);                                 // Lottozahl 4 in der Box 4 zeichnen
        
        /***************************
        *** BOX 5                ***
        ****************************/
        
        g.setColor(Color.BLACK);                                            // Schwarzes Rechteck von Box 5
        g.fillRect(180,40,30,30);                                           // Grösse von schwarzen Box 5
        g.setColor(Color.LIGHT_GRAY);                                       // Hellgraues Rechteck von Box 5
        g.fillRect(181,41,28,28);                                           // Grösse von hellgrauer Box 5
        g.setColor(Color.WHITE);                                            // Weisses Rechteck von Box 5
        g.fillRect(182,42,26,26);                                           // Grösse von weisser Box 5
        
        g.setColor(Color.BLACK);                                            // Farbe der Schrift (Schwarz)
        g.drawString(lottozahl_5, 187, 60);                                 // Lottozahl 5 in der Box 5 zeichnen
        
        /***************************
        *** BOX 6                ***
        ****************************/
        
        g.setColor(Color.BLACK);                                            // Schwarzes Rechteck von Box 6
        g.fillRect(220,40,30,30);                                           // Grösse von schwarzen Box 6
        g.setColor(Color.LIGHT_GRAY);                                       // Hellgraues Rechteck von Box 6
        g.fillRect(221,41,28,28);                                           // Grösse von hellgrauer Box 6
        g.setColor(Color.WHITE);                                            // Weisses Rechteck von Box 6
        g.fillRect(222,42,26,26);                                           // Grösse von weisser Box 6
        
        g.setColor(Color.BLACK);                                            // Farbe der Schrift (Schwarz)
        g.drawString(lottozahl_6, 227, 60);                                 // Lottozahl 6 in der Box 6 zeichnen
     
        }
     
    public boolean handleEvent(Event e) {
      if (e.id == Event.WINDOW_DESTROY)
      System.exit(0);
      return super.handleEvent(e);
    }
    }
     

  2. #2
    flashray flashray ist offline Mitglied Rubin
    Registriert seit
    Sep 2005
    Ort
    Mannheim
    Beiträge
    1.325
    Hallo Dsone,

    wieso zeichnest du alles auf das Frame. Viel einfacher ist es doch mit AWT Komponenten.

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    
    import java.awt.*;
    import java.awt.event.*;
    import java.util.Random;
     
    public class LottoGenerator extends Frame implements ActionListener {
     
        private Label l = new Label("Lotto Generator 2006");
        
        private Panel p = new Panel();
        
        private TextField[] t = new TextField[6];
        
        private Button b = new Button("Generate new Combination");
        
        public LottoGenerator() {
            super("Lotto Magic ");
            this.setLocationByPlatform(true);
            this.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
            
            b.addActionListener(this);
            
            p.setLayout(new GridLayout(1,6));
            for (int i = 0; i < t.length; i++) {
                t[i] = new TextField(2);
                t[i].setEditable(false);
                t[i].setFocusable(false);
                p.add(t[i]);
            }
            
            this.add(l,BorderLayout.NORTH);
            this.add(p,BorderLayout.CENTER);
            this.add(b,BorderLayout.SOUTH);
            
            this.pack();
            
            this.setVisible(true);
        }
        
        public static void main(String[] args) {
            new LottoGenerator();
        }
     
        public void actionPerformed(ActionEvent e) {
            
            for (int i = 0; i < t.length; i++) {
                t[i].setText("Zahl");
            }
        }
    }


    Vg Erdal
     

  3. #3
    dsone dsone ist offline Rookie
    Registriert seit
    Apr 2004
    Beiträge
    5
    Hi flashray,
    ich kenne mich in Java leider noch ned wirklich gut aus.
    Das mit dem zeichnen haben wir in der Schule eben angeschaut. In der Aufagbenstellung steht, man sollte keinen Fremdcode benutzen. Dazu sollte ich jede Codezeile verstehen und erklären können. Am liebsten wäre mir, wenn mir jemand einen Aktualisieren-Button in meinen Code zaubern könnte.

    Lieber Gruss
    dsone
     

  4. #4
    flashray flashray ist offline Mitglied Rubin
    Registriert seit
    Sep 2005
    Ort
    Mannheim
    Beiträge
    1.325
    Hallo Dsone,

    füge folgenden Code noch hinzu:
    Code :
    1
    2
    3
    4
    
        public lotto (){
            Button myButton = new Button("Ein Button");
            this.add(myButton,BorderLayout.SOUTH);
        }

    und lösche die zwei ähnlichen Zeilen aus der Methode paint.

    Vg Erdal
     

Ähnliche Themen

  1. Lottozahlengenerator, Tic Tac Toe, C#
    Von Roaddog99 im Forum .NET Application und Service Design
    Antworten: 2
    Letzter Beitrag: 19.07.10, 10:12
  2. RCP Statusline von per Button über eine Shell aktualisieren
    Von ScoopDTN im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 21.04.10, 17:01
  3. Lottozahlengenerator
    Von di-five im Forum Java
    Antworten: 2
    Letzter Beitrag: 16.01.09, 19:59
  4. Webseite mit AWT-Button aktualisieren
    Von korthi im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 02.11.04, 14:22
  5. Antworten: 3
    Letzter Beitrag: 12.02.04, 08:19