kostenloser Webspace werbefrei: lima-city


Java anfänger braucht hilfe bei GUI-Programmierung!

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    a28

    a28 hat kostenlosen Webspace.

    Hallo,
    ich programmiere noch nicht lange mit Java und möchte es jetzt lernen, ich versuche was einfaches und kleines zu programmieren, was für mich z.b. ein taschenrechner ist (einer der nur +|-|*|/ rechnen kann), ich habe auch schon etwas funktionierendes, aber es sieht noch nicht gut aus, gibt ein ein library oder sowas, das einem die GUI-Programmierung vereinfacht?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. b**********m

    JavaFX, Swing, AWT,...

    mfg
  4. Autor dieses Themas

    a28

    a28 hat kostenlosen Webspace.

    Swing kenne ich, damit habe ich meine GUI auch gemacht, aber damit ist es nicht so einfach eine gut aussehende GUI zu machen und AWT ist glaube ich veraltet, aber JavaFX kenne ich noch nicht, danke! :)
    Aber ich meinte eigentlich libraries, die nicht von Java sind.
  5. Ich vermute du willst eigentlich keine neue Bibliothek etc, sondern etwas mit dem du dir dein GUI komfortabel zusammenklicken kannst (einen WYSIWYG-Editor also) und nicht ständig ausprobieren musst was du wie ändern musst damit es so aussieht.

    Für die Entwicklungsumgebung Eclipse gibt es z.B. den WindowBuilder (https://eclipse.org/windowbuilder/) der diese Funktionalität bietet.

    Ich hab damit schon sehr gute Erfahrungen gemacht, auch Fenster die ihren Inhalt selbst an die Fenstergröße anpassen sind damit kein Problem.
  6. Autor dieses Themas

    a28

    a28 hat kostenlosen Webspace.

    Für Eclipse ist sehr passend, ich gucke es mir mal an, danke! :)
  7. Bei dem Window-Builder kann ich nur zustimmen, der ist ideal wenn man sich nicht all zu sehr mit dem Code selbst beschäftigen möchte, jedoch stößt irgendwann auch dieser an seine Grenzen. Desweiteren gilt auch anzumerken, dass automatisch generiertet Code wie vom Windowbuilder meistens auch überflüssige Zeilen enthält, was sehr unschön sein kann.
  8. Autor dieses Themas

    a28

    a28 hat kostenlosen Webspace.

    Diese Überflüssigen Zeilen werde ich schon irgendwie weg machen können, ich hatte noch keine zeit es mir anzugucken, werds aber heute nachmittag mal machen. :)
  9. Tools wie den WIndowbuilder finde ich für Entwickler, die eine Programmiersprache lernen, am Anfang nicht wirklich sinnvoll. Klar, man kriegt schnell eine funktionierende UI, aber man versteht den generierten Code nicht. Erstmal zwei oder drei Sachen ohne Hilfsmittel schreiben. Wenn man die Prinzipien verstanden und verinnerlicht hat, kann man solche Generatoren gern verwenden, dann ist man in der Lage, den generierten Code -- z.B. wenn man etwas braucht oder will, was der Generator nicht kann -- an eigenen Bedürfnisse anzupassen oder zu erweitern.

    H.
  10. Autor dieses Themas

    a28

    a28 hat kostenlosen Webspace.

    Also ich habe einen taschenrechner gemacht und auch verstanden wie es geht, aber er sieht nicht wie ein taschenrechner und auch nicht gut aus, deshalb habe ich nach einem library gefragt, das dafür geschrieben wurde, damit die GUI-Programmierung etwas vereinfacht wird, weil ich weiß z.b. nicht, wie ich einen button an eine andere stelle verschieben kann, oder wie ich bilder einfügen kann und habe auch mit google nichts gefunden, wie es geht...
  11. b**********m

    Ich finde einiges zu dem Thema auf Google. https://www.google.at/search?q=java+element+position+button

    Du kannst Breite, Höhe und das offset links/oben einstellen.

    myPanel.setLayout(null);
    JButton myButton = new JButton(myPanel);
    myButton.setBounds(left, top, width, height);


    Beitrag zuletzt geändert: 7.11.2015 15:33:17 von buergerforum
  12. a28 schrieb:
    Also ich habe einen taschenrechner gemacht und auch verstanden wie es geht, aber er sieht nicht wie ein taschenrechner und auch nicht gut aus, deshalb habe ich nach einem library gefragt, das dafür geschrieben wurde, damit die GUI-Programmierung etwas vereinfacht wird, weil ich weiß z.b. nicht, wie ich einen button an eine andere stelle verschieben kann, oder wie ich bilder einfügen kann und habe auch mit google nichts gefunden, wie es geht...

    Swing bietet schon alles, was Du brauchst, nur haben die Götter -- oder die Programmierer von Sun -- vor den Erfolg das Studium der Dokumentation gesetzt. Jeder Container hat einen LayoutManager, der die Komponenten, die Du in den Container einfügst, anordnet. Das ist nützlich und nötig weil Du ja bei beim Schreiben eines Programms nicht unbedingt weisst, wie viel Platz Du hast und Du eventuell später im Entwicklungsprozess noch Elemente einfügen oder löschen möchtest.

    Wenn Du nicht anderes vergibst, verwendet Swing das FlowLayout, bei dem die mit Komponenten nebeneinander gesetzt werden und auf neue Zeilen "fliessen" wenn nötig. Für einen Taschenrechner würde ich ein vertikales BoxLayout verwenden, ein JLabel für die Ergebnisanzeige hinein packen und darunter weitere JPanel mit horizontalem BoxLayout für die Reihen mit den Buttons, ein verschachteltes Layout also.

    Das alles ist im Swing-Trail des Oracle Java Tutorial sehr gut erklärt - allerdings auf Englisch. Nicht ganz so ausführlich aber dafür auf Deutsch ist www.java-tutorial.org, das dann aber bei den Details -- also den Klassen, ihren Methoden und Eigenschaften -- den Leser doch wieder zu Oracle schickt.

    H.
  13. Autor dieses Themas

    a28

    a28 hat kostenlosen Webspace.

    Ok, danke!
    Ich wusste nicht, dass das Standart-Layout ein BoxLayout ist und ich das erst ändern muss, ich versuche mal es zu ändern.
  14. a28 schrieb:
    Ich wusste nicht, dass das Standart-Layout ein BoxLayout ist und ich das erst ändern muss, ich versuche mal es zu ändern.


    Halt! Das ContentPane hat anfänglich ein BorderLayout (Irrtum meinerseits, ich dachte, dass das wie beim JPanel wäre). Das FlowLayout ist Standard bei JPanel (packe Components in preferredSize nebeneinander bis zu Breite des Containers und brich bei Bedarf auf neue Zeile um). Das BoxLayout bricht nicht um und ändert bei Bedarf die Größe der Components auf Werte zwischen component.getMinimumSize() und component.getMaximumSize().

    H.
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!