GUI erstellen?

snipesss

Mitglied
Also leute, ich habe keine Ahnung wie ich eine GUI erstellen kann. Also könntet ihr mir vielleicht schreiben wie ich den anfang einer GUI machen soll?
 

klauskarambulut

Bekanntes Mitglied
Ganz ehrlich, es kommt darauf an…

Theoretisch könntest du den link befolgen und etwas über AWT und Swing lernen.
Aber was wirst du am Ende feststellen? Man fängt nichts mehr mit Swing an. Das Thema ist durch, Standard wird über kurz oder lang JavaFX.

Aber, sollte man nun JavaFX nehmen? Kommt darauf an. Es wird vieles besser gemacht als mit Swing. Es bietet die bessere API um strukturiert zu arbeiten.
Außer du möchtest Desktop Anwendungen auf Basis von Eclipse bauen. Dann wäre SWT der Kandidat.
Eclipse RCP (SWT) ist im Business-Bereich weit verbreitet.

Dennoch ist die Anzahl von Desktop Anwendungen auf Java Basis überschaubar, bis auf einen Bereich.

Dieser Bereich heißt Android. Also warum nicht gleich Android nehmen?


Daneben gibt es noch eine zweite Art von GUIs. Das sind Webanwendungen. HTML-Seiten werden teils dynamisch generiert. Formulardaten dann an einen Webservice gesendet, der sehr oft in Java, z.B. auf Basis von JEE oder einem Tomcat, gebaut ist.
Bei letzterem wird immer mehr Client-Seitig in JavaScript realisiert. AngularJS und React.js sind hier die großen Player.

Für einen Anfänger ist JEE und Webservice natürlich der Overkill.

Wenn man sich aber ein wenig beschränkt, dann kann man auch alleine mit HTML und JavaScript schon eine Menge machen.

Und genau das ist meine Empfehlung.
HTML und JavaScript! Wenn es schön aussehen soll CSS dazunehmen.
GUI, bzw. ein einfaches Formular in HTML designen. Daten eingeben und mit JavaScript verarbeiten und das Ergebnis in HTML ausgeben.

Spätestens wenn man irgendwann mal Professionell arbeiten möchte und dann mit JEE in Kontakt kommt sind das die wichtigen Dinge die man kennen muss. Der Rest ist in wenigen Jahren nur noch Legacy.
 

Viktim

Bekanntes Mitglied
Hallo,

wie klauskarambulut geschrieben hat würde ich dir auch kein Swing empfehlen...
Theoretisch könntest du den link befolgen und etwas über AWT und Swing lernen.
Aber was wirst du am Ende feststellen? Man fängt nichts mehr mit Swing an. Das Thema ist durch, Standard wird über kurz oder lang JavaFX.

DENN:
- Es ist veraltet.
- Bei Swing sitzt man oft da und fragt sich warum manche Dinge passieren (oder auch speziell bei einer Komponente gar nicht Funktionieren).
- JavaFX sieht deutlich besser aus.
 

Nuiton

Bekanntes Mitglied
Hallo,

wie klauskarambulut geschrieben hat würde ich dir auch kein Swing empfehlen...


DENN:
- Es ist veraltet.
- Bei Swing sitzt man oft da und fragt sich warum manche Dinge passieren (oder auch speziell bei einer Komponente gar nicht Funktionieren).
- JavaFX sieht deutlich besser aus.

1. Was ist "veraltet"?
2. Verstehe das Argument nicht.
3. Was man mit JavaFX "designen" kann, kann man auch in Swing. Man muss nur wissen wie.
 

Jardcore

Top Contributor
Dennoch ist die Anzahl von Desktop Anwendungen auf Java Basis überschaubar, bis auf einen Bereich.
In der Industrie wird ein Großteil der Anwendung in Java geschrieben.
Siehe z.B. diese Studie aus dem letzten Jahr.
https://www.gulp.de/knowledge-base/markt-und-trends/marktstudie-java-c--und-c.html
1. Was ist "veraltet"?
2. Verstehe das Argument nicht.
3. Was man mit JavaFX "designen" kann, kann man auch in Swing. Man muss nur wissen wie.

Swing wird offiziel nicht weiterentwickelt. Das JavaFX aber der große Durchbruch wird ist leider nicht zu sehen. HTML hat sich hier als wesentlich robuster erwiesen und kann auch als Desktop Anwendung konzipiert werden. Man kann sich aber auch auf SWT stürzen. Beides wird in großen Projekten gebraucht.

Aber ein Anfänger kann sich ruhig mit JavaFX auseinandersetzen, das Framework ist modern und man lernt viele Dinge die auch so in anderen Frameworks vorkommen. Und wer weiß vielleicht wird JavaFX in den kommenden Jahren durch die richtigen Patches auch vollkommen Konkurrenzfähig.

Ich finde leider den Artikel nicht mehr aber eine Firma für Windräder aus Schleswig Holstein hat die komplette Steuerung ihres Windparks mit JavaFX designt... und fährt gut damit (Java Magazin irgendwann Anfang des Jahres)
 

SchwarzWeiß

Bekanntes Mitglied
1. Was ist "veraltet"?
2. Verstehe das Argument nicht.
3. Was man mit JavaFX "designen" kann, kann man auch in Swing. Man muss nur wissen wie.
Gegenfrage: Warum sollte ein Neueinsteiger mit Swing anstatt JavaFX beginnen? Hier geht es ja nicht darum, seine bereits erstellten Projekte umzukremplen oder jemand, der jahrelang mit Swing arbeitete zu überreden auf JavaFX umzusteigen. Allein die bereits erwähnte Tatsache, dass Swing nicht mehr weiterentwickelt wird, sollte doch als Argument ausreichen, dass sich ein Neueinsteiger nicht mehr damit befassen sollte, wenn bereits ein Nachfolger existiert.
 

klauskarambulut

Bekanntes Mitglied
Die Anzahl der Projekte in der Industrie sagt ja noch überhaupt nichts über die verwendete Oberflächentechnologie aus.

In der Regel geht es darum das verschiedene User miteinander interagieren. Es wird also meist irgendeine Server-Komponente geben und die ist halt heute in JAVA geschrieben.

Dennoch, wie bekomme ich eine Swing GUI auf einem Androiden zum laufen? Oder wenigstens einem IPhone? Oder IPad? Richtig! Garnicht.
Wie sieht es mit JavaFX aus? Gleich! Von SWT mal ganz zu schweigen.

Mein erstes Java GUI Programm in Swing sah so aus, dass es aus einem label bestand, dass ein Zahl dargestellt hat. Dazu gab es dann zwei Buttons, einen mit "-" und einen mit "+", die diesen Zähler verändert haben.

Das Grundgerüst nach HTML portiert.

HTML:
<!DOCTYPE html>
<html>

<head>
</head>

<body>
        <h1>A Simple Counter</h1>
        <input type="button" value="-">
        <span id="counter">0</span>
        <input type="button" value="+">
</body>

</html>

Jetzt noch mit Funktionalität erweitert
HTML:
<!DOCTYPE html>
<html>

<head>
        <script type="text/javascript">
                var count = 0;

                function updateCounter() {
                        var counterElement = document.getElementById("counter");
                        counterElement.innerHTML = count;
                }

                function increment() {
                        count++;
                        updateCounter();
                }

                function decrement() {
                        count--;
                        updateCounter();
                }
        </script>
</head>

<body onload="updateCounter()">
        <h1>A Simple Counter</h1>
        <input type="button" value="-" onClick="decrement()">
        <span id="counter">...</span>
        <input type="button" value="+" onClick="increment()">
</body>

</html>

Das Ding läuft auf allem was einen Browser hat und JS eingeschalten hat.

Was diverse JAVA-Technologien machen ist entweder das HTML in Java zu erstellen.
Den Server bereitstellen, der gesendete Daten entgegennimmt, verarbeitet und dann Antworten z.B. als JSON zurücksendet.

Wenn man nun zusätzliche Features benötigt, dann bettet man das HTML/JS Zeug in eine Webview ein und stellt alles nötige bereit, auf dass man aus einer Sandbox heraus keinen Zugriff hat.

Auf dem Desktop sind das z.B. Elektron (Chromium in Kombination mit NodeJS) mit dem z.B. auch der Atom-Editor gemacht wurde oder wenn es um Mobile-Geräte geht PhoneGap.

Aber um HTML und JS führt sofern man ernstgenommen werden will kein Weg mehr vorbei.
 

Viktim

Bekanntes Mitglied
1.) Veraltet heißt, das es nicht mehr benutzt wird.
2.) Soll heißen, das Swing manche probleme hat (z.B. Rand einer Combobox).
3.) In JavaFX geht das ganze aber viel leichter!
 

klauskarambulut

Bekanntes Mitglied
JavaFX im Browser? Klar, via Applet. Ging früher auch mit Swing. Nur, dass es eben niemand mehr nutzt, der halbwegs weiß was er tut.

JavaFX on Mobile, via Gluon JavaFX-Ports. Kommerzielles Projekt, aber mit abstrichen kostenlos nutzbar. Aber schon bei Windows Phone ist Schluss. Aber wie sieht der Erfolg aus? Wie ist die Verbreitung? Werden die Features, die vorhanden sind, auch genutzt und benötigt?

Für ein bisschen Formulardaten entgegennehmen, Tabellen oder Charts anzeigen oder ein wenig Canvas ist man mit HTML5 sehr gut bedient.
 

Nuiton

Bekanntes Mitglied
Veraltet heisst in deinem Kontext nicht, dass es nicht mehr benutzt wird, sondern dass Oracle dass nicht mehr weiterentwickeln moechte.

Werde ich Java fuer Webanwendungen benutzen? Kommt drauf an. Es gibt viel bessere Alternativen, wie @klauskarambulut schon sagte.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J Packages erstellen Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
dcHost Java Kara Sensor erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
N 2D Array Summe erstellen Java Basics - Anfänger-Themen 6
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S Programm erstellen Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
T Countdown erstellen Java Basics - Anfänger-Themen 7
I ZIP File erstellen Java Basics - Anfänger-Themen 10
L Ordner in neuen erstellten Ordner erstellen Java Basics - Anfänger-Themen 12
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
B JaxB - Referenzen erstellen? Java Basics - Anfänger-Themen 2
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
E Classpath Datai erstellen Java Basics - Anfänger-Themen 3
B eine methode erstellen Java Basics - Anfänger-Themen 7
I Entity erstellen, die für API gedacht ist Java Basics - Anfänger-Themen 33
M Packages erstellen mit Java-Editor Java Basics - Anfänger-Themen 6
L FinanzApp erstellen Java Basics - Anfänger-Themen 1
J Junit4 Klasse erstellen Java Basics - Anfänger-Themen 5
B Warteschlange erstellen mit LinkedList ? Java Basics - Anfänger-Themen 6
Animal-Mother BMI Rechner erstellen für W/M Java Basics - Anfänger-Themen 7
F GSON file mit einer List erstellen Java Basics - Anfänger-Themen 2
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
J Java Queue mit default Werten erstellen Java Basics - Anfänger-Themen 4
JaVaN0oB Bruchklasse erstellen Java Basics - Anfänger-Themen 9
N Kreismuster auf Bestehendem Kreis erstellen Java Basics - Anfänger-Themen 10
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
F Adjunkte Matrix erstellen Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
T Startbildschirm für ein Spiel erstellen Java Basics - Anfänger-Themen 0
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
GermanPie Discord Text Channel erstellen? Java Basics - Anfänger-Themen 1
K Objektdiagramm erstellen Java Basics - Anfänger-Themen 3
C Wie kann ich Versionen eines Projektes in Eclipse erstellen? Java Basics - Anfänger-Themen 3
D Klassen Klassendiagramm richtig erstellen Java Basics - Anfänger-Themen 20
S Objekte indiziert erstellen Java Basics - Anfänger-Themen 27
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
B Methode für jede beliebe Entity erstellen Java Basics - Anfänger-Themen 7
E Filmsammlung erstellen Java Basics - Anfänger-Themen 6
B Eine Methode erstellen Java Basics - Anfänger-Themen 3
M Erstellen eines insets Objekts, GridBagLayout Java Basics - Anfänger-Themen 13
I ArrayList erstellen innerhalb einer Zeile? Java Basics - Anfänger-Themen 3
N String N-Gramme mit Stream erstellen Java Basics - Anfänger-Themen 7
K Quersumme erstellen Java Basics - Anfänger-Themen 7
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
D Input/Output Mehrzeiligen String aus Textdatei erstellen Java Basics - Anfänger-Themen 5
C Erstellen eines Widerstandsnetzwerks Java Basics - Anfänger-Themen 10
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
P Arrays "automatisch" erstellen lassen Java Basics - Anfänger-Themen 12
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
D Zusammenhängenden Graphen für Gleisnetz erstellen Java Basics - Anfänger-Themen 13
Y Unterschied zwischen WindowBuilder und herkömmlichen erstellen des GUI´s? Java Basics - Anfänger-Themen 9
M Writer für unterschiedliche Obj/inbt/double erstellen? Java Basics - Anfänger-Themen 1
Kirby.exe Generische Objekt Instanz erstellen Java Basics - Anfänger-Themen 14
P Fractal erstellen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben