Frage von Arnel82, 20

Java grafisch beginnen?

Ich mache schone einige Zeit mit Java herum, nun würde ich gerne beginnen ein Programm mit grafischer Oberfläche zu machen. Ich Anfänger nur so zur Info! Danke!

Antwort
von PerfectMuffin, 20

Gundlagen für Grafik:

Was du brauchst, ist in java.awt zu finden.

Components repräsentieren Elemente, die du platzieren kannst, wie Button, TextField und so weiter.

Container wie Panel oder Applet sind Components, in die man andere Components platzieren kann.

Wie die Components im Container angeordnet sind, hängt vom LayoutManager ab. Mit setLayout(null) erlaubt man manuelles platzieren über setBounds(welches die folgenden zwei Funktionen kombiniert), setSize und setLocation

Window s sind besondere Container, die nicht in andere Container eingefügt werden können, aber dafür direkt auf dem Bildschirm angezeigt werden können, wie zum beispiel Frame und Dialog.

Compüonents verfügen über die Funktion paint(Graphics) die in Klassen, die Component überschreiben benutzt werdne können, um auf dem Bildschirm zu zeichnen, dafür wird die Klasse Graphics verwendet.

Viele Funktionen von graphics hängen von Farbe ab, Farben werden durch Color repräsentiert und alle üblichen farbmodelle sind vertreten.

Interaktionen sind über die Klassen und Interfaces in java.awt.Event möglich.

Üblicherweise erweitert man einen Container oder ein Window in der Klassendefinition und versieht es dann mit Components und dann die Components mit Eventlistenern.

Ein Beispiel für ein Fenster mit einem Großen blauen Button, der das Programm piepsen lässt:

import java.awt.Frame;
import java.awt.Button;
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Buttondemo extends Frame implements ActionListener{
 public static void main(String[] args){
  new Buttondemo();
 }
 public Buttondemo(){
 Button b=new Button("Ding!");
 b.addActionListener(this);
 b.setBackground(Color.BLUE);
 add(b);
 setSize(300,300);
 setVisible(true);
 }
 public void actionPerformed(ActionEvent ae){
 Toolkit.getDefaultToolkit().beep();
 }
}
Kommentar von TeeTier ,

Also auch wenn AWT den kleinsten gemeinsamen Nenner darstellt, sollte man doch eigentlich schon Swing nehmen, wenn es denn sein muss.

Allerdings sind sowohl AWT als auch Swing als "deprecated" anzusehen, und spätestens seit Java 8 sollte man gerade neue GUI-Projekte nur noch ausschließlich in JavaFX anfangen.

JavaFX wird mittelfristig Swing (und AWT sowieso) ablösen, bzw. verdrängen. Wenn der Fragensteller jetzt also sowieso mit grafischen Oberflächen anfangen möchte, sollte er doch eigentlich das lernen, was aktuell ist.

Unter Windows fummelt heutzutage auch keiner mehr mit der Win32-API bzw. MFC rum, es sei denn, es gibt sehr gute Gründe dafür.

Allerdings hinkt zugegebenermaßen der deutschsprachige JavaFX Büchermarkt dem englischen hinterher. Trotzdem sehe ich heutzutage kaum einen Grund mehr, mit AWT/Swing einzusteigen. Wenn man irgendwann mal mit JavaFX umgehen kann, und zu viel Freizeit hat, kann man sich die ja immer noch angucken. :)

Kommentar von PerfectMuffin ,

Basiert JavaFX nicht mehr auf AWT?

Kommentar von TeeTier ,

Richtig! Komplette Neuentwicklung. Sogar Kleinigkeiten wie ActionListener wurden durch ActionEvent's ersetzt.

In der gesamten Vererbungshierarchie gibt es von Object aus keine "veralteten" Klassen, und damit auch kein AWT, mehr.

Vieles wurde verbessert, alte Zöpfe abgeschnitten, und viele Konzepte sind völlig neu - und evtl. auch gewöhnungsbedürftig. :)

Kommentar von PerfectMuffin ,

....nicht einmal awt.Color?

Keine passende Antwort gefunden?

Fragen Sie die Community