Datum abgleichen und Frage zum Layout

Nis'chen

Mitglied
Hallo zusammen,

weil dies mein erster Beitrag hier ist, halte ich es für sinnvoll, mich mal kurz vorzustellen.
Ihr dürft mich Nis'chen nennen, oder auch Nisi, wie ihr möchtet 🙂
Ich bin 20 Jahre alt und habe vor kurzem ein duales Wirtschaftsinformatikstudium begonnen.
Kenntnisse in Java habe ich von da und von der Schule, die ich besucht habe, allerdings sind das (meiner Auffassung nach) höchstens 10% von dem, was man in Java lernen kann 😀
Und dementsprechend ist jetzt eure Hilfe gefragt 🙂

Mit einigen Kommilitonen zusammen möchte ich gerne einen Adventskalender programmieren.
Wir haben es inzwischen sogar hinbekommen, ein Layout zu erstellen, obwohl keiner von uns dadrin Kenntnisse hat 🙂
Jetzt gibt es allerdings noch einige Sachen, wo wir Fragezeichen im Kopf haben 😀

1)
Die Türchen sollten sich ja ab dem jeweiligen Tag öffnen lassen. Der spontane Einfall wäre gewesen, eine einfache if-else Abfrage hinter jeden Türchenbutton zu legen. Aber da ergeben sich (leider) ungeahnte Schwierigkeiten, die sich auch nach stundenlanger Recherche nicht haben beseitigen lassen.

Zunächst einmal haben wir das aktuelle Datum ausgewertet (und tadaaa, das hat funktioniert 😀):

Code:
Date dt = new Date();
  SimpleDateFormat df = new SimpleDateFormat( " dd. MM. yyyy" );
...
Code:
label2.setText("Heute ist der  " + df.format( dt ));

Und ab da begann das Rumprobieren. Wir haben:
- Das Datum in einen String versucht umzuwandeln und mit einem weiteren String zu vergleichen
- Ein Datum "vorzugeben" (also zu initialisieren, wenn man das dann so nennt) und mit dem aktuellen
Datum zu vergleichen.
Das sah dann etwa so aus:

Code:
    button1.setLabel("1");
    button1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) {
        if(DatumHeute==vorgegebenesDatum){
        button1_ActionPerformed(evt);
       }
      }
    });
    button1.setFont(new Font("@Arial Unicode MS", Font.BOLD, 20));
    button1.setBackground(Color.WHITE);
    button1.setForeground(Color.RED);
    button1.setCursor(new Cursor(Cursor.HAND_CURSOR));
    cp.add(button1);

Und das alles mit allen möglichen Datentypen und Varianten und und und... 😀
Und als mir dann auch noch aufgefallen ist, dass wir als Vergleichsoperator schlecht == nehmen können, sondern ein if(aktuellesDatum >= Türchendatum) besser wäre, da haben wir's schlichtweg aufgegeben...

Habt ihr vielleicht durch mein geschriebenes Wirrwarr (entschuldigt!) das Problem erkannt und eventuell einen guten Lösungsvorschlag? 🙂)

Und dann gibt es da noch Punkt Nummer

2)
Wir haben uns entschlossen, dass sich nach jedem Klick auf einen Türchenbutton ein Fenster öffnen soll, mit Texten oder Bildern oder vielleicht sogar einem Video (wenn das überhaupt geht?) und das Fensteröffnen haben wir sogar hinbekommen. Allerdings wissen wir nicht ganz, wie man die dann mit Inhalt füllt... Mein Kommilitone hat es tatsächlich geschafft, dass ein Fenster den Inhalt "hallo" bekommt, allerdings sieht das etwa so aus:

_____________________
|...............................|
|...............................|
|...............................|
|...............................|
|hallo.........................|
|...............................|
|...............................|
|...............................|
_____________________

Wisst ihr eine Lösung, da ein ordentliches Layout hinzubekommen? 🙂


Vielen Dank schon mal im Voraus!
Und entschuldigt bitte, wenn es genau die Frage(n) schon mal gegeben hat, aber nach stundenlanger Internetrecherche habe ich doch keine richtig passende Lösung gefunden...


Liebe Grüße,
Nis'chen
 
Danke, ich gucke mir den Link gleich mal an 🙂

Oh.. äääähm... jaaaa... ich glaube wir ahnungslose Erstis haben das einfach mal bunt durcheinander gemischt...
 
Also, die gute Nachricht ist, dass ich jetzt weiß, wie man Daten vergleicht.
Die schlechte Nachricht ist, es funktioniert trotzdem nicht wie gewünscht... 🙁

Ich habe schon festgestellt, dass der try-catch irgendwie nur in der Main-Methode funktioniert, aber das blöde ist, dass der Rest vom Programm das da nicht findet...?
Auf jeden Fall werden die seltsamsten Fehler ausgegeben 🙁

Verlegt man aber try-catch unsere andere Methode, jammert Java rum "illegal start of type" und "; expected", wobei ich mir sicher bin, dass weder das eine noch das andere hinkommt...

Wie rum muss ich das Programm zusammen basteln, dass das etwa so läuft:

//Variablen (ua Daten und heutiges Datum) deklarieren
//Buttons erstellen
→ //Im Button Daten mit aktuellem Datum vergleichen, damit die dahinterliegende Funktion nur ab einem bestimmten Tag aufgerufen werden kann

Momentan sieht das ganze etwa so aus (und funktioniert von hinten bis vorne nicht):

Code:
public class Adventskalender extends JFrame {
  SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
  Date dh = new Date();
  try
  {
  Date d1 = sdf.parse("01.12.2013");
  } catch(ParseException ex)
     {
      ex.printStackTrace();
      } 
  private Button button1 = new Button();
  button1.setBounds(50, 175, 100, 100);
    
    button1.setLabel("1");
    button1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) {
        if(d1.compareTo(dh)>0){
          System.out.println("Es ist noch nicht so weit... Also nicht schummeln, ja?"); 
        }
        else
        {
          button1_ActionPerformed(evt);
        }
      }
    });
    button1.setFont(new Font("@Arial Unicode MS", Font.BOLD, 20));
    button1.setBackground(Color.WHITE);
    button1.setForeground(Color.RED);
    button1.setCursor(new Cursor(Cursor.HAND_CURSOR));
    cp.add(button1);

   public void button1_ActionPerformed(ActionEvent evt)
   {
    JFrame fenster;
    fenster = new JFrame("Erstes Türchen");
    fenster.setSize(500,500);
    fenster.setLocation(300,300);
    fenster.setVisible(true);
    JPanel panel = new JPanel(new GridLayout(1,1));
     }

(Sind jetzt natürlich nur die relevanten Auszüge 😉 )

Dank schon jetzt für eure Hilfe! 🙂
 

Zurück
Oben