Hallo alle zusammen ich hab ne Hausaufgabe in Informatik aufbekommen und komme nicht ganz zurecht weil ich noch nicht soweit mit dem umgehen von AWT und Swing bin.
Die Aufgabe lautet:
Schildkröten sind nicht besonders schlau. Eine besondere Art von Schildkröten kann sich lediglich in horizontaler und vertikaler Richtung bewegen, und das auch nur innerhalb eines quadratischen Reviers der Größe 10x10. Allerdings kann diese Schildkrötenart die Kommandos left,right,up und down befolgen. Sollte ein Kommando die Schildkröte aus ihrem Revier herausführen, so ist sie verwirrt. Sie bleibt einfach auf dem Feld stehen, auf dem sie sich befindet und wartet auf das nächste Kommando. Die Schildkröte startet ihren Weg in der linken unteren Ecke ihres Reviers. Ergänzen Sie das Java-Programm, das folgende Oberfläche erzeugt und nachstehende Funktionalität realisieren soll. Für eine Folge von Kommandos, soll die Anzahl der Besuche der Schildröte auf den Feldern des Reviers angezeigt werden. Im unten angezeigten Beispiel soll die Kommandofolge right, right, up, up, up, up, right, right, down, up, up die Schildkröte dazu bewegen, den folgenden Weg zu gehen und untenstehende Anzeige erzeugen.
Mein Problem ist erstmal der Aufbau von dem Ganzen. Wenn ich den hab hab ich eigentlich keine großen Probleme mit der Erzeugung der Funktion des Fensters. Ich hab ein großes Panel erzeugt mit BorderLayout. Mein erstes Problem ist wofür stehen die Zahlen in den Klammern des BorderLayouts. Hab BorderLayout in einem früheren Beispiel genutzt und ich wusste nicht was es genau bewirkt. Als nächstes dachte ich mir ich mach die Buttons hab die mit GridLayout erzeugt. Also 5 gleichgroße Buttons im Süden des Fensters(BorderSouth). Jetzt dachte ich mir ich kann doch dieses GridLayout eigtl auch auf das Raster anwenden sodass ich 100 gleichgroße Rechtecke hab(10 Zeilen, 10 Spalten) nur wusste ich nicht wie ich den Rest des Fensters für diesen Zweck in Zusammenhang mit dem BorderLayout benutze, dachte mir vllt gibt es ja einen anderen Layout-Manager mit dem das besser funktioniert?! und ich weiß auch nicht wie die Seiten der Rechtecke sichtbar werden! Naja vorab sollte ich erstmal wissen wie diese Rechtecke "imaginär" dort stehen^^ danach würde ich als Label ein Array verwenden um den einzelnen Rechtecken den Wert zu übergeben:rtfm: aber das kann noch bisschen warten. Erstmal möchte ich den Aufbau(Layout-Manager) des Fensters realisieren
Danke im voraus ihr würdet mir echt weiterhelfen:toll:
Was ich bisher hab:
Die Aufgabe lautet:
Schildkröten sind nicht besonders schlau. Eine besondere Art von Schildkröten kann sich lediglich in horizontaler und vertikaler Richtung bewegen, und das auch nur innerhalb eines quadratischen Reviers der Größe 10x10. Allerdings kann diese Schildkrötenart die Kommandos left,right,up und down befolgen. Sollte ein Kommando die Schildkröte aus ihrem Revier herausführen, so ist sie verwirrt. Sie bleibt einfach auf dem Feld stehen, auf dem sie sich befindet und wartet auf das nächste Kommando. Die Schildkröte startet ihren Weg in der linken unteren Ecke ihres Reviers. Ergänzen Sie das Java-Programm, das folgende Oberfläche erzeugt und nachstehende Funktionalität realisieren soll. Für eine Folge von Kommandos, soll die Anzahl der Besuche der Schildröte auf den Feldern des Reviers angezeigt werden. Im unten angezeigten Beispiel soll die Kommandofolge right, right, up, up, up, up, right, right, down, up, up die Schildkröte dazu bewegen, den folgenden Weg zu gehen und untenstehende Anzeige erzeugen.
Mein Problem ist erstmal der Aufbau von dem Ganzen. Wenn ich den hab hab ich eigentlich keine großen Probleme mit der Erzeugung der Funktion des Fensters. Ich hab ein großes Panel erzeugt mit BorderLayout. Mein erstes Problem ist wofür stehen die Zahlen in den Klammern des BorderLayouts. Hab BorderLayout in einem früheren Beispiel genutzt und ich wusste nicht was es genau bewirkt. Als nächstes dachte ich mir ich mach die Buttons hab die mit GridLayout erzeugt. Also 5 gleichgroße Buttons im Süden des Fensters(BorderSouth). Jetzt dachte ich mir ich kann doch dieses GridLayout eigtl auch auf das Raster anwenden sodass ich 100 gleichgroße Rechtecke hab(10 Zeilen, 10 Spalten) nur wusste ich nicht wie ich den Rest des Fensters für diesen Zweck in Zusammenhang mit dem BorderLayout benutze, dachte mir vllt gibt es ja einen anderen Layout-Manager mit dem das besser funktioniert?! und ich weiß auch nicht wie die Seiten der Rechtecke sichtbar werden! Naja vorab sollte ich erstmal wissen wie diese Rechtecke "imaginär" dort stehen^^ danach würde ich als Label ein Array verwenden um den einzelnen Rechtecken den Wert zu übergeben:rtfm: aber das kann noch bisschen warten. Erstmal möchte ich den Aufbau(Layout-Manager) des Fensters realisieren
Danke im voraus ihr würdet mir echt weiterhelfen:toll:
Was ich bisher hab:
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Raster{
public static void main(String[] args){
//Fenster erstellen
JFrame f = new JFrame("Schaltjahr");
JPanel bigPanel = new JPanel(new BorderLayout(0,20));
JPanel rasterPanel = new JPanel(new GridLayout(10, 10, 0, 0));//Zeilen, Spalten, Abstand Zeilen, Abstand Spalten
JPanel btnPanel = new JPanel(new GridLayout(0, 5, 10, 0));
//JLabel labelField[][] = new JLabel[10][10];//[Zeilen][Spalten]
//rasterPanel.add(labelField[i][j]);
JButton button1 = new JButton("up");
JButton button2 = new JButton("down");
JButton button3 = new JButton("left");
JButton button4 = new JButton("right");
JButton button5 = new JButton("clear");
btnPanel.add(button1);
btnPanel.add(button2);
btnPanel.add(button3);
btnPanel.add(button4);
btnPanel.add(button5);
bigPanel.add(btnPanel, BorderLayout.SOUTH);
f.add(bigPanel);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400, 400);
f.setVisible(true);
}
}