Huhu liebes java-forum. Ich bin ganz neu hier, und hoffe, dass ihr mir hin und wieder ein paar Hilfestellungen geben könnt 
Ich soll einen Terminplaner implementieren, bin aber derzeit noch ziemlich Planlos, wie ich an die Sache rangehen soll.... es sind einfach zu viele Anforderunegn auf einmal...
Es fängt schon damit an, dass es 2 möglichkeiten geben soll einen neuen Termin zu erzeugen...
Erstellen Sie eine Klasse Termin. Sie soll ein Datum als Tag, Monat und Jahr
und eine Notiz speichern. Es soll zwei Möglichkeiten geben, einen neuen Termin zu erzeugen: Das Datum muss immer angegeben werden; der Notiz-Parameter ist optional.
Fügen Sie der Klasse eine toString()-Methode hinzu, die Datum und Notiz in geeigneter Form als String zurück gibt. Eine weitere Methode soll einen zweiten Termin als Parameter erhalten und als booleanWert zurück geben, ob das Datum des Termins mit dem Datum des übergebenen übereinstimmt.
Implementieren Sie die Klasse Terminplaner. Sie soll Termine als ArrayList<Termin>,
also eine Liste von Terminen, speichern. Verwenden Sie die Java-API-Dokumentation,
um sich mit der Funktionalität der Klasse vertraut zu machen.
Ihre Klasse soll die folgenden Methoden unterstützen:
• Terminplaner(): Konstruktor für den Terminplaner, der die ArrayList initialisiert.
• void neuerTermin(Termin t): Fügt einen Termin hinzu.
• void zeigeTermine(Termin t): Zeigt all diejenigen Termine an, die das selbe Datum wie der übergebene Termin besitzen.
• void zeigeTermine(int ab, int anzahl): Zeigt die übergebene Anzahl von
Terminen ab der übergebenen Indexposition in der Liste an (es handelt sich hierbei nicht um ein Datum). Beachtet, dass innerhalb einer ArrayList das erste Element den Index 0 besitzt.
• void zeigeAlleTermine(): Zeigt alle Termine des Terminplaners an.
Wir haben ein Beispiel dazu gemacht, wie man eine ArrayList verwenden kann:
Ich soll einen Terminplaner implementieren, bin aber derzeit noch ziemlich Planlos, wie ich an die Sache rangehen soll.... es sind einfach zu viele Anforderunegn auf einmal...
Es fängt schon damit an, dass es 2 möglichkeiten geben soll einen neuen Termin zu erzeugen...
Erstellen Sie eine Klasse Termin. Sie soll ein Datum als Tag, Monat und Jahr
und eine Notiz speichern. Es soll zwei Möglichkeiten geben, einen neuen Termin zu erzeugen: Das Datum muss immer angegeben werden; der Notiz-Parameter ist optional.
Fügen Sie der Klasse eine toString()-Methode hinzu, die Datum und Notiz in geeigneter Form als String zurück gibt. Eine weitere Methode soll einen zweiten Termin als Parameter erhalten und als booleanWert zurück geben, ob das Datum des Termins mit dem Datum des übergebenen übereinstimmt.
Implementieren Sie die Klasse Terminplaner. Sie soll Termine als ArrayList<Termin>,
also eine Liste von Terminen, speichern. Verwenden Sie die Java-API-Dokumentation,
um sich mit der Funktionalität der Klasse vertraut zu machen.
Ihre Klasse soll die folgenden Methoden unterstützen:
• Terminplaner(): Konstruktor für den Terminplaner, der die ArrayList initialisiert.
• void neuerTermin(Termin t): Fügt einen Termin hinzu.
• void zeigeTermine(Termin t): Zeigt all diejenigen Termine an, die das selbe Datum wie der übergebene Termin besitzen.
• void zeigeTermine(int ab, int anzahl): Zeigt die übergebene Anzahl von
Terminen ab der übergebenen Indexposition in der Liste an (es handelt sich hierbei nicht um ein Datum). Beachtet, dass innerhalb einer ArrayList das erste Element den Index 0 besitzt.
• void zeigeAlleTermine(): Zeigt alle Termine des Terminplaners an.
Wir haben ein Beispiel dazu gemacht, wie man eine ArrayList verwenden kann:
Java:
public class Karte
{
int farbe, wert;
static int spalten = -1;
public Karte(int farbe, int wert)
{
this.farbe = farbe;
this.wert = wert;
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import java.util.*;
import java.util.concurrent.*;
import java.io.*;
import javax.imageio.*;
public class Spielbrett extends JFrame
{
private static final long serialVersionUID = -2219224963313371208L;
static final double scale = 0.47;
static final int cardHeight = (int)(215*scale);
static final int cardWidth = (int)(150*scale);
static final int leftBorder = 50;
static final int topBorder = 80;
static final double gap = 1.3;
private ArrayList<Karte> cards;
private BufferedImage images[][];
private String suits[] = {"spades", "clubs", "hearts", "diamonds"};
private String values[] = {"seven", "eight", "nine", "ten", "jack", "queen", "king", "ace"};
public Spielbrett()
{
super("Cards by Semicol");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(new Dimension(800, 700));
setVisible(true);
images = new BufferedImage[4][8];
for (int i=0; i<suits.length; ++i)
for (int j=0; j<values.length; ++j) {
String fileName = "cards/" + suits[i] + "-";
fileName += values[j] + ".png";
try {
images[i][j] = ImageIO.read(new File(fileName));
//image = ImageIO.read(getClass().getResourceAsStream(fileName));
} catch (IOException e) {
System.out.println("Error while loading image " + fileName);
}
}
}
public void maleKarten(ArrayList<Karte> cards)
{
this.cards = cards;
repaint();
}
public void paint(Graphics g2)
{
if (cards == null)
return;
BufferedImage offscreen = new BufferedImage(getWidth(), getHeight(),
BufferedImage.TYPE_3BYTE_BGR);
Graphics g = offscreen.getGraphics();
g.setColor(Color.LIGHT_GRAY);
g.fillRect(0, 0, getWidth(), getHeight());
for (int i=0; i<cards.size(); ++i) {
Karte c = cards.get(i);
drawCard(g, c, i);
}
g2.drawImage(offscreen, 0, 0, this);
}
private void drawCard(Graphics g, Karte card, int index)
{
int numCols = (int)((getWidth() - leftBorder) / (cardWidth*gap));
if (numCols < 1)
numCols = 1;
if (Karte.spalten > 0)
numCols = Karte.spalten;
double y = topBorder + (index / numCols) * cardHeight * gap;
double x = leftBorder + index % numCols * cardWidth * gap;
g.drawImage(images[card.farbe][card.wert], (int)x, (int)y, cardWidth, cardHeight, null);
}
public void warte()
{
final CountDownLatch cdl = new CountDownLatch(3);
KeyEventDispatcher disp = new KeyEventDispatcher()
{
public boolean dispatchKeyEvent(KeyEvent e) {
cdl.countDown();
return false;
}
};
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(disp);
try { cdl.await(); } catch(InterruptedException e) {}
KeyboardFocusManager.getCurrentKeyboardFocusManager().removeKeyEventDispatcher(disp);
}
}
import java.util.*;
public class Spielkarten
{
public static void main(String[] args)
{
Spielbrett sb = new Spielbrett();
ArrayList<Karte> stapel = new ArrayList<Karte>();
for (int farbe=0; farbe<4; farbe++)
for (int wert=0; wert<8; wert++) {
Karte k = new Karte(farbe, wert);
stapel.add(k);
}
sb.maleKarten(stapel);
sb.warte();
ArrayList<Karte> gemischt = new ArrayList<Karte>();
while (stapel.size() > 0) {
int index = (int)(Math.random() * stapel.size());
Karte k = stapel.remove(index);
gemischt.add(k);
}
sb.maleKarten(gemischt);
}
}