Swing :Komponenten I (Teil 2) Swing :Komponenten I (Teil 2) l l l Bei Swing handelt es sich um eine Programmierschnittstelle und Grafikbibliothek zum Programmieren von grafischen Benutzeroberflächen Swing stellt eine Menge von Klassen zur Verfügung Swing wurde von Sun Microsystems für die Programmiersprache Java entwickelt Swing :Komponenten I (Teil 2) Vorteile von Swing: • wichtigstes Feature: Pluggable Look-And-Feel • Swing-Komponenten sind komplett in Java implementiert . • Swing hat doppelt so viele Komponenten wie das AWT ⇒ komfortableres Programmieren. Swing :Komponenten I (Teil 2) Wichtige Merkmale • zu jeder AWT-Komponente des AWT gibt es entsprechende Swing-Komponenten, diese beginnen mit J- z.B. JButton statt Button • alle Elemente von Swing sind Bestandteil des Paketes javax.swing Swing :Komponenten I (Teil 2) Zusätzliche Komponenten von Swing , die zu Oberflächenerzeugung genutzt werden Können: l l l l l l Keyboard Accelerators , also Tastenkombination zur Steuerung von Komponenten Drag & Drop Setzen des Look and Feel Toltips Automatisches Double Buffering Zusätzlichen Kompenenten , um Tabellen und Baumstrukturen darzustellen Swing :Komponenten I (Teil 2) l Java . Swing ist das Basis-Paket für Grafik-und Oberflächenprogrammierung. l Java.awt.imaje für direkte Manipulation von Bildern. l Java.awt.event für das neue Eventhandling-Konzept. l Java.awt.datatransfer biete Möglichkeiten zum Datenaustausch zwischen Applikationen Swing :Komponenten I (Teil 2) l Die GUI-Komponenten ist eine Klasse des Swing-Pakets. l GUI-Komponenten werden in drei Gruppen eingeteilt: Container Displays wie JextArea , textField und Jlabel Basic Controls wie JButton,JCheckBox,JComboBox,Jlist Container - Container Klassen dienen dazu, Komponenten zu gruppieren, anzuordnen und als eine einzelne Einheit zu behandeln - zur Anordnung der Elemente am Bildschirm hat jeder Container einen Layout Manager zugeordnet - Swing unterscheidet 2 Klassen von Containern: • Top-level Container • Intermediate-level Container Swing :Komponenten I (Teil 2) Top-Level Container • JFrame: Klasse für ein Fenster mit Rahmen, Titel und Icons zum Schließen des Fensters • JDialog: Klasse für ein sehr allgemeines Dialogfenster • JApplet: Klasse für Applets Swing :Komponenten I (Teil 2) Intermediate-level Container • JPanel: wichtigste und flexibelste Panel-Klasse • JScrollPane: ähnl. JPanel mit Scrollbars • JToolBar: enthält eine Gruppe von Elementen in einer Zeile oder Spalte Swing :Komponenten I (Teil 2) Jlist: l Die Klasse JList dient dazu,Listen von Werten darzustellen , aus denen der Anwender einen oder mehrere Einträge auswählen Kann. l Diese Klasse besitzt folgende Konstruktoren : JList() Erzeugt eine neue leere List-Box JList( Vector list Data) Erzeugt eine liste mit Daten , die dem Feld oder dem Vektor entstammen. Beispiel l Beispiel : Erzeuge eine JList mit einigen Zeichenketten l String[] listData = { "Shinguz", "Glapum'tianer", "Suffus", "Zypanon", "Tschung" }; JComponent jList = new JList( listData ); l 01: import javax.swing.*; 02: import java.awt.*; 03: 04: public class MyJList extends Jframe 05: { /*ein Array mit Listendaten wird erzeugt*/ 06: String daten[] = {"daten1", "daten2", "daten3", "daten4"}; 07: 08: public MyJList() 09: { 10: super("JList"); 11: JList liste = new JList(daten); /*der Klasse JList wird erzeugt*/ 12: JPanel panel = new JPanel(); 13: /*Hintergrund der ausgewählten Zeile auf hellgrau setzen*/ 14: liste.setSelectionBackground(Color.lightGray); /*Vordergrund der ausgewählten Zeileaud rot setzen*/ 15: liste.setSelectionForeground(Color.red); 16: liste.setForeground(Color.blue);/*Vordergrund der Liste auf blau setzen*/ 17: liste.setBackground(Color.black);/*Hintergrund der Liste auf schwarz setzen*/ 18: 19: panel.add(liste); /*Liste wird zum JPanel hinzugefügt*/ 20: setContentPane(panel); 21: } 22: 23: public static void main(String[]args) 24: { 25: MyJList ml = new MyJList(); 26:ml.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 27: ml.setSize(100,150); 28: ml.setVisible(true);} } Swing :Komponenten I (Teil 2) JComboBox: Die JComboBox ist das Swing-Pendant zur AWT-Klasse Choise . Es stellt eine Kombination aus Textfeld und Liste dar. § Die wichtigsten Konstruktoren von JComboBox sind: public JComboBox() : Erzeugt ein leeres Auswahlmenü mit einem Standardmodel. Public JComboBox( Object [] items) :Erzeugt ein Auswahlmenü mit Elementen, die im Feld items angegeben sind. Swing :Komponenten I (Teil 2) Public JComboBox ( Vector items) : Erzeugt ein Auswahlmenü mit Elementen, die im Vektor items abgelegt sind. Public JComboBox (ComboBoxModel aModel): Erzeugt ein Auswahlmenü mit einem Combo-Box-Model, das die Daten speichert. Swing :Komponenten I (Teil 2) l Zur Abfrage oder Selektierten Elements bietet die Klasse weitere Funktionen: Object getSelectedItem() Liefert die aktuelle Wahl zurück. Object[] getSelectedObjects() Liefert ein Array mit den selektierten Einträgen. int getSelectedIndex() Liefert den Index des aktuell selektierten Eintrags. void setSelectedIndex( int position ) Setzt den Eintrag im Titel des Menüs auf den Eintrag mit der Nummer position. Swing :Komponenten I (Teil 2) l Rollbalken(JScrollBar): JScrollBar ist die leichtgewichtige Swing-Variante der AWT-Klasse Scrollbar sie dient dazu mit Hilfe eines Schiebereglers einen Wert einzustellen. Der wichtigste Konstruktor der Klasse JScollBar ist : public JScrollBar() Erzeugt einen vertikalen Rollbalken. public JScrollBar( int orientation ) mit der angegebenen Richtung. Erzeugt einen neuen Rollbalken Swing :Komponenten I (Teil 2) public JScrollBar ( int orientation, /* Mit orientation wird die Ausrichtung des Schiebereglers festgelegt*/ int value, /* value ist der Anfangswert des Schiebers*/ int extent , /* Mit extent wird die Ausdehnung des Schiebers festgelegt */ int min, int max ) JScrollBar stellt einige Methoden zur Verfügung,mit denen nach der Instanzierung auf die numerischen Eigenschaften des Schiebereglers zugegriffen werden kann: Swing :Komponenten I (Teil 2) l Public int getMinimum() public void setMinimum( int minimum ) public int getMaximum() public void setMaximum ( int maximum) public int getVisibleAmount( ) public void setVisibleAmount( int extent) public int getValue() public void setValue ( int value ) Mit getMinimum, getMaximum, setMinimum und setMaximum kann auf das Minimum und Maximum des definierten Wertebereichs zugegriffen werden . getVisibleAmount liefert die Ausdehnung des Schiebers , Swing :Komponenten I (Teil 2) l Mit getValue und setValue kann auf den aktuellen Wert des Schiebereglers zugegriffen werden . Beispiel import java.applet.Applet; import java.awt.*; public class ScrollbarDemo extends Applet { Scrollbar slider; public void init() { // Initialisierung des Scrollbars slider = new Scrollbar(Scrollbar.HORIZONTAL); slider.setValues(50, 100, 0, 200); /*kann aktuellen wert des schiebereglers zugreifen // Hinzufügen des Scrollbars setLayout(new BorderLayout()); add("Center", slider); } } 24 Swing :Komponenten I (Teil 2) Die Klasse JSlider: Ein JSlider lässt den Benutzer zwischen diskreten Werten mit einem Schieberegler wählen. Konstruktor : public Jslider ( int orientation) public JSlider ( int min, int max) public JSlider ( int min , int max , int value) public Jslider ( int orientation , int min , int max , int value) Orientation: Hier können die Konstanten Horizontal und Vertical übergeben werden. min und max legen die Grenzen des Wertbereichs fest. Value : Anfangswert Swing :Komponenten I (Teil 2) JScrollBar: JSlider: JList: JComboBox: JScrollPane: JPasswordField: l Vielen Dank für Ihre Aufmerksamkeit ! Quellen : Handbuch der Java Programmierung (5.Auflage) Guido Krüger & Thomas Stark Java ist auch ein Insel Christian Ullenboom