# Java Optische Oberfläche



## Ice4P4rty (19. Okt 2017)

Hi bin in den Optischen Oberflächen neu.

Ich will ein kleines Spiel machen. dafür mache ich ein Fenster wo man erst ein neues Spiel macht und dann wenn man neues spiel klickt zum Charakter erstellen kommt aber wie schaffe ich es das sich das Fenster aktualisiert ? also ich will kein weiteren Tab ich will das sich das Fenster updatet und zu dem Charakter erstellen geht ich hoffe das verstehen alle.

Ich weiß nicht ob das Grundwissen ist weil ich lerne java grade erst und optische Oberflächen fangen wir erst an aber ich will mehr und nicht nur die langweiligen Programme die jeder im Schlaf schafft.


----------



## Robat (19. Okt 2017)

Du solltest mMn nicht gleich mit einem Spiel anfangen.
Bau dir erstmal eine GUI die einfach nur zwischen Layouts wechseln kann. Wenn du das soweit verstanden hast (auch Themen wie EDT, Multithreading sind hier wichtig) kannst du anfangen einen kleinen 2D-Runner zu bauen.
Um verschiedene Layouts zu wechseln kannst du dir mal das CardLayout ansehen.
Mach dir 2 Panels mit dem entsprechenden Layout, adde sie dem CardLayout und wechsel dann zwischen den Ansichten.


----------



## JuKu (29. Okt 2017)

@Ice4P4rty Hey! 
Was du willst, ist gar keine GUI, sondern eher eine Game Engine / Game Framework / Library.
Eine normale GUI ist für eher statische Elemente gedacht und nicht für Dinge, die sich oft bewegen / updaten. Bei einer Game Engine / Game Framework hingegen wird der Bildschirm bei 60 FPS (= Frames per Second) 60 mal pro Sekunde geupdatet. D.h. du hast keine festen Elemente, die du wie bei einer GUI verschieben würdest, sondern du *zeichnest* 60 mal pro Sekunde das Fenster.
Ein GUI Framework / Library halte ich persönlich für Spiele (Ausnahme: Statische Spiele wie z.B. Wer wird Millionär o.ä.) eher für ungeeignet, das ist aber meine eigene persönliche Meinung.
Ich würde die *libGDX* empfehlen. Das ist eine Game Library, die vermutlich genau deine Wünsche (bzw. deine Anforderungen) erfüllt.

Wie @Robat bereits sagte solltest du dir aber im Klaren darüber sein, dass der Start in die Spieleentwicklung nicht immer ganz einfach ist, denn Spieleentwicklung ist hart! Viele Dinge sind anders, als bei einer normalen Anwendungsentwicklung und du musst auf viel mehr Sachen achten, auf die du sonst meist nicht so achten musst (GC Pressure, Performance usw.).
Aber ich denke, es ist trotzdem machbar.

Ansonsten kannst du auch gerne mal bei SpaceChaos reinschnuppern:
https://www.java-forum.org/thema/anfaenger-gruppe-gruenden.174993/page-7
https://www.java-forum.org/thema/anfaenger-gruppe-gruenden.174993/page-7
SpaceChaos basiert ebenfalls auf libGDX und der Code ist Open Source --> du kannst ihn einsehen.


----------

