// edit Ich war ein wennig zu hastig bitte Verschieben :D
Grundbaustein Grafik in Java
Ich möchte ihnen Heute anhand eines Quellcodes der von mir geschrieben wurde einen kleinen Einblick in die Grafik Programmierung in Java geben.
Fangen wir mit den Import an :
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
Diese sind zwingend notwendig für den Actionlistener Und die Grafik
So jetzt kommen wir zum eigendlichen Programm und erstellen uns die erste Klasse:
Code:
public class UnserErstesSwingFenster extends JFrame
Das extends JFrame sagt dem Compiler das es Eine Grafische Oberfläche und kein Consolen Programm wird.
Für Mein Kleines Beispiel Programm brauchen wir jetzt ein Textfield(Eingabe) und ein Text Area(Ausgabe)
Code:
JTextField jtf_name; // Variable für Zugriff über Lauscher-Klasse
JTextArea jta_ausgabe;
So Hier der Source vom obersten teil des GUI Konstruktor
Code:
public UnserErstesSwingFenster() // Konstrruktor für GUI
{
Container cp=getContentPane();
JLabel jl_ueberschr=new JLabel("Java");
JLabel jl_name=new JLabel("Name");
jtf_name=new JTextField(12);
jta_ausgabe=new JTextArea(5,22);
In diesen Abschnitt wird erstmal ein Neuer Container Angelegt dies wird sozusagen eine Box wo alle JButtons, JLabels usw reinkommen,danach sie Später auch wirklich angezeigt werden dies ist zwingend notwendig.
In diesem Teil werden Die JButtons angelegt mein ("Ausgeben") werden JLabels auf den Buttons eingefügt um ihnen eine Bezeichnung zu geben und um sie Später besser Auseinander zu halten.
Ich habe mich Hier endschieden 3x Buttons für mein Programm zu erstellen:
Code:
JButton jb_ausgeben=new JButton("Ausgeben");
jb_ausgeben.addActionListener(new Lauscher());
JButton jb_clear=new JButton("Clear");
jb_clear.addActionListener(new Lauscher());
JButton jb_exit=new JButton("Exit");
jb_exit.addActionListener(new Lauscher());
Kommen wir nun zum fast wichtigsten Teil der Java Grafik Programmierung dem JPanels diese Sorgen dafür Das der Gesamte Inhalt angezeigt wird.
Man kann seine Oberfläche in South, North, Center, West,East einteilen
Ich habe für mein Programm aber nur Das JPanel Center und South gebraucht.
mit jp_center.add(Dein Objekt); fügt man seine oben angelegten Objekte dem jeweiligen JPanels zu.
Code:
JPanel jp_center = new JPanel();
JPanel jp_south = new JPanel();
jp_center.add(jl_name);
jp_center.add(jtf_name);
jp_center.add(jta_ausgabe);
jp_south.add(jb_ausgeben);
jp_south.add(jb_clear);
jp_south.add(jb_exit);
cp.add(jl_ueberschr,BorderLayout.NORTH);
cp.add(jp_center,BorderLayout.CENTER);
cp.add(jp_south,BorderLayout.SOUTH);
Jetzt haben wir alles erstellt. Aber die Funktion des Programms fehlt natürlich.Jetzt gebrauchen wir den Actionlistener der Erkennt wen ein Button gedrückt wird und reagiert der dem entsprechend definiert ist.
Code:
class Lauscher implements ActionListener // Für Funktion des Programms
{
public void actionPerformed(ActionEvent e)
{
String button=e.getActionCommand();
if (button.equals("Clear"))
{
jtf_name.setText("");
jta_ausgabe.setText("");
}
if (button.equals("Ausgeben"))
{
String str=jtf_name.getText();
jta_ausgabe.setText("Ihr Name lautet:\n"+str+".");
}
if (button.equals("Exit"))
{
System.exit(0);
}
}
Dies wird wohl nichts neues sein für welche die sich schon mit Java Consolen Programmen beschäftigt haben. Also werde ich darauf nicht weiter eingehen, hier werden die Objekte definiert und ihnen Funktionen Gegeben.
Kommen wir Zum letzen Teil der Java Grafik Programmierung:
Code:
public static void main(String[] args) // Hauptprogramm
{
UnserErstesSwingFenster fenster=new UnserErstesSwingFenster();
fenster.setLocation (300,200);
fenster.setSize (300,300);
fenster.setDefaultCloseOperation(3);
fenster.setVisible(true);
Hier wird unserem Swing Fenster eine Größe zugewisen und ihm mit :
Code:
fenster.setVisible(true);
gesagt das es angezeigt werden soll.
Voller Source:
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class UnserErstesSwingFenster extends JFrame
{
JTextField jtf_name; // Variable für Zugriff über Lauscher-Klasse
JTextArea jta_ausgabe;
public UnserErstesSwingFenster() // Konstrruktor für GUI
{
Container cp=getContentPane();
JLabel jl_ueberschr=new JLabel("Java");
JLabel jl_name=new JLabel("Name");
jtf_name=new JTextField(12);
jta_ausgabe=new JTextArea(5,22);
JButton jb_ausgeben=new JButton("Ausgeben");
jb_ausgeben.addActionListener(new Lauscher());
JButton jb_clear=new JButton("Clear");
jb_clear.addActionListener(new Lauscher());
JButton jb_exit=new JButton("Exit");
jb_exit.addActionListener(new Lauscher());
JPanel jp_center = new JPanel();
JPanel jp_south = new JPanel();
jp_center.add(jl_name);
jp_center.add(jtf_name);
jp_center.add(jta_ausgabe);
jp_south.add(jb_ausgeben);
jp_south.add(jb_clear);
jp_south.add(jb_exit);
cp.add(jl_ueberschr,BorderLayout.NORTH);
cp.add(jp_center,BorderLayout.CENTER);
cp.add(jp_south,BorderLayout.SOUTH);
}
class Lauscher implements ActionListener // Für Funktion des Programms
{
public void actionPerformed(ActionEvent e)
{
String button=e.getActionCommand();
if (button.equals("Clear"))
{
jtf_name.setText("");
jta_ausgabe.setText("");
}
if (button.equals("Ausgeben"))
{
String str=jtf_name.getText();
jta_ausgabe.setText("Ihr Name lautet:\n"+str+".");
}
if (button.equals("Exit"))
{
System.exit(0);
}
}
}
public static void main(String[] args) // Hauptprogramm
{
UnserErstesSwingFenster fenster=new UnserErstesSwingFenster();
fenster.setLocation (300,200);
fenster.setSize (300,300);
fenster.setDefaultCloseOperation(3);
fenster.setVisible(true);
}
} // Ende Klasse des Programms UnserErstesSwingFenster
Mit diesen Kleinem Beispiel wollte ich die Java Grafik Programmierung etwas näher bringen bei Fragen stehe ich gerne Zur Verfügung.
N0ne|Administrator
Since