2016-06-26 19 views
-3

Ich möchte eine GUI für ein einfaches Spiel erstellen, an dem ich in Java arbeite. Der Blick, den ich bekommen will, ist so etwas wie unten:Erstellen einer GUI (Swing)

enter image description here

ich mit Layout-Manager versucht arbeiten, aber ich kann einfach nicht einen Weg finden, wie sie den Blick bekommt richtig zu verwenden, um ich will oder ich don verstehe sie nicht. Vielleicht sollte ich das anders machen, anstatt Swing zu benutzen?

Was ich dachte, das ich brauche eine JFrame zu schaffen, eine JPanel mit BorderLayout oder GridBagLayout hinzufügen und dann (für Tasten) fügen Sie eine weitere Platte mit BoxLayout Schaltflächen und fügen sie es.

Wenn es die richtige Vorgehensweise ist, wie positioniere ich sie richtig?


EDIT

Ich verwende Eclipse

Antwort

0

Sie könnten mit Net Beans berücksichtigen, die für die Entwicklung von GUI-Anwendungen mit Java ein geiles IDE ist.

Wenn Sie mit Eclipse arbeiten möchten, werfen Sie einen Blick auf this.

Hoffnung, es hilft: D

+0

Ich benutze Eclipse und ich wollte dabei bleiben, ohne Designmanager zu verwenden, außer es ist notwendig. – Soderlight

0

Das ist nicht wirklich eine typische Frage SO, aber ich werde es einen Riss nehmen.

Die Sache mit Layout-Managern, die meiner Meinung nach am meisten fehlt, ist eine TOP-LEVEL-Erklärung dessen, was sie tun, sowohl allgemein als auch individuell.

Im Allgemeinen übernimmt ein Layout-Manager Komponenten und wendet Regeln an, um sie zu positionieren. Alle Arten von Fragen beziehen sich auf SO darüber, warum die Höhe und Breite einer Komponente "nicht funktioniert"; Viele von ihnen sind, weil sie in einem Layout-Manager sind, der Höhe und Breite oft nach seinen Regeln überschreibt.

Eine der Komponenten eines Layout-Managers ist ein Panel mit einem anderen Layout-Manager, sodass Sie Panels mit verschiedenen Layout-Managern verschachteln können, um die gewünschten Effekte zu erzielen.

Die einzelnen Layout-Manager setzen das Dokumentationsdefizit fort, indem sie nicht erklären, wofür sie arbeiten und was sie tun werden. Zum Beispiel hat ein BorderLayout 5 Abschnitte; Die Mitte dehnt sich horizontal und vertikal aus, um jede Dehnung zu füllen, während die obere und untere nur horizontal und die linke und rechte nur vertikal strecken. Wenn Sie keine Komponenten in einem der vier Randbereiche haben, benötigt es keinen Platz. Daher wird eine Höheneinstellung für eine Komponente im oberen und unteren Bereich berücksichtigt, eine Breite jedoch nicht. Ich kann mich nicht daran erinnern, aber jeder Bereich benötigt nur eine Komponente. Wenn Sie also mehrere Komponenten in einem Bereich haben möchten, erstellen Sie ein Panel mit ihnen (und dieses Panel hat natürlich seinen eigenen Layout-Manager).

Ich schlage also vor, Erklärungen und Beispiele mit diesen Dingen zu lesen. Sie müssen Ihr eigenes Verständnis über den allgemeinen Zweck und die Regeln der meisten Layout-Manager eingeben, da die Dokumentation für sie im Allgemeinen keine gute Erklärung dieser Dinge liefert.

Wenn Sie Hilfe zu einem bestimmten Layout benötigen, benötigen Sie mehr Details als hier.Welche Komponenten möchten Sie miteinander ausrichten? Was möchten Sie tun, wenn der Benutzer das Fenster streckt?

+0

Ich möchte Schaltflächen vertikal und JLabel (Spieltitel) mit JTable (Highscores) horizontal ausgerichtet werden, Stretching ist nicht wichtig, weil seine Vollbild-JFrame. – Soderlight

+0

Für eine vertikale oder horizontale Ausrichtung können Sie BoxLayout verwenden; Für Spalten (horizontale und vertikale Ausrichtung, mehrere Komponenten) können Sie in GroupLayout oder Kombinationen anderer Layouts suchen. GridBagLayout wird auch Spalten machen, aber ich finde es für jeden Zweck unhandlich und vermeide es. Sie haben die Antwort "NetBeans" akzeptiert, mehr Macht für Sie, aber realisieren Sie, dass es immer noch hilft zu verstehen, was die Layout-Manager tun. Und übersehen Sie nicht die Notwendigkeit, zu wissen, was bei verschiedenen Größen passiert, wenn Sie nicht strecken, nur weil es "Vollbild" ist; Es gibt viele Größen von Bildschirmen. – arcy