Java Swing in Theorie und Praxis
|
|
|
- Innozenz Schuler
- vor 9 Jahren
- Abrufe
Transkript
1 Java Swing in Theorie und Praxis 1 / 53
2 Inhaltsverzeichnis Buch 1: SWING FOR NEWBIES Seitenzahl 1) Was ist Swing? 4 2) Applets und Applikationen 4 a. HelloWorld Applikation 4 b. HelloWorld Applet 6 3) Die Erweiterung von AWT 7 4) Komponenten und Container 7 a. Top-Level-Container 7 b. General-Purpose-Container 7 c. Special-Purpose-Container 8 d. Weitere Komponenten 8 e. Layout-Manager 8 f. Layout-Beispiele 9 Buch 2: SWING FOR SMARTIES 1) Was ist Swing? 15 a. Action 15 b. Adjustment 18 c. Item 19 d. Key 19 e. Window 20 f. Mouse 20 g. MouseMotion 21 h. Component 23 i. Focus 23 j. ListSelection 24 k. Text 25 2) Implementierung 26 a. über Interface 26 b. oder mit Adapterklasse 26 c. Liste über EventListenerInterfaces und Adapterklassen 27 3) Aufbau eines EventHandlers 28 a. in der gleichen Klasse 28 b. als innere Klasse 28 c. anonyme Klasse 30 d. Übersicht über Komponenten und die zugehörigen Events 31 4) Weitere Komponenten 32 a. Look and Feel 32 b. Borders 37 c. Popup-Menüs 40 d. JProgressBar 40 2 / 53
3 e. JColorChooser 41 f. JFileChooser 43 g. JPasswordField 44 h. verschiedene Panel-Typen 45 i. JTable 46 j. Tooltip 48 k. Shortcuts & Mnemonic 48 l. TabbedPane 49 ÜBUNGEN 1) JButton mit Icon 52 2) JCheckBoxes 52 3) JProgressBar 53 3 / 53
4 SWING FOR NEWBIES 1) Was ist Swing? - Swing ist eines von mehreren Application Programming Interface (API) der sogenannten Java Foundation Classes (JFC). Hinter API verbergen sich sämtliche Packages, die zur Programmierung in Java zur Verfügung stehen. - Swing steht für Java Klassen, die genauso wie die AWT Klassen, zur Entwicklung plattformunabhängiger grafischer Benutzeroberflächen verwendet werden - Mittels Programmen wie Forte oder JBuilder lassen sich relativ schnell und einfach Swing Oberflächen erstellen - Mit Java Swing lassen sich unterschiedliche Programme erstellen: - Swing-Applikationen - Swing-Applets - Servlets (ähnlich den Applets, auf Servern eingesetzt) 2) Applets und Applikationen - Applikationen sind Programme, die nicht an das Internet oder das Intranet einer Firma gebunden sind, sondern lokal auf einem Computer laufen - Für die Ausführung der Applikationen ist die von Java bekannte Main-Methode verantwortlich - Der Begriff Applet steht für little application - Applets benötigen immer einen Swing-fähigen Internet-Browser für die Ausführung - Applets enthalten keine Main-Methode! - Für den Start eines Applets ist eine HTML-Datei erforderlich a) Einführendes Beispiel (Hello World) 4 / 53
5 public class HelloWorldApplikation extends JFrame { public HelloWorldApplikation () { super("helloworldapplikation "); FlowLayout layout = new FlowLayout(FlowLayout.CENTER); Container contentpane = getcontentpane(); contentpane.setlayout(layout); JLabel l1 = new JLabel(); JButton b1 = new JButton("HelloWorld"); contentpane.add(l1); contentpane.add(b1); l1.settext("hello World"); public static void main(string[]args) { JFrame rahmen = new HelloWorldApplikation (); WindowListener listener = new WindowAdapter() { ; public void windowclosing(windowevent we) { System.exit(0); rahmen.addwindowlistener(listener); rahmen.setsize(300,100); rahmen.setvisible(true); 5 / 53
6 <html> <body> <applet code = "HelloWorldApplet.class" width = 500 height = 200> </applet> <body> <html> import javax.swing.*; import java.awt.*; import java.awt.event.*; public class HelloWorldApplet extends JApplet { public void init() { FlowLayout layout = new FlowLayout(FlowLayout.CENTER); Container contentpane = getcontentpane(); contentpane.setlayout(layout); JLabel l1 = new JLabel(); JButton b1 = new JButton("HelloWorld"); contentpane.add(l1); contentpane.add(b1); l1.settext("hello World"); public void start() { public void stop() { public void destroy () { 6 / 53
7 3) Die Erweiterung von AWT - Swing ist eine Erweiterung des Abstract Windowing Toolkits (AWT) - Viele Komponenten sind sowohl als AWT-, wie auch als Swing-Komponenten verfügbar - Die Swing-Komponenten sind allerdings wesentlich mächtiger - Unterscheiden kann man die verschiedenen Komponenten an ihrem Namen, z.b.: - Ein Button ist in AWT unter java.awt.button zu finden, in Swing unter javax.swing.jbutton - Das x in Paketnamen javax besagt, das es sich um ein extended-pakete handelt - Bei Swing Komponenten wird ein J vorangestellt 4) Komponenten und Container Es gibt zwei Arten von Komponenten: - heavyweigth components (Schwergewichtige Komponenten) - lightweigth components (Leichtgewichtige Komponenten) - heavyweigth components werden in einem undurchsichtigen Fenster dargestellt und dürfen keine anderen heavyweigth components enthalten - lightweigth components dagegen können einen durchsichtigen Hintergrund haben und beliebige Formen annehmen - Zur Gruppe der heavyweigth components zählen Rahmen (JFrame), Applets und Dialoge - Nahezu alle Swing- Komponenten sind aber lightweigth components und müssen in heavyweigth components platziert werden, da sie kein eigenes Fenster haben a) Top-Level-Container - Zu den Komponenten des Top-Level- Container zählen die heavyweigth components JFrame, JDialog und JApplet - Diese Komponenten bilden praktisch den äußeren Rahmen eines Programms und alle anderen - Komponenten, die in dieser Anwendung verwendet werden, befinden sich innerhalb eines Top-Level-Containers - Für die Platzierung anderer Komponenten in einen Top-Level-Container ist noch eine Zwischenkomponente erforderlich, das so genannte content pane - Neue Komponenten werden also nicht dem Hauptcontainer zugefügt, sondern dem content pane, das selber ein Teil des Hauptcontainers ist b) General-Purpose-Container - General-Purpose-Container sind Behälter für allgemeine Anwendungen. Zu dieser Gruppe von Komponenten zählen u.a. Panels. Ein Panel dient als Behälter für weitere Komponenten, wie z.b. Schieberegler, Schaltflächen, Eingabefelder und Listboxen. 7 / 53
8 c) Special-Purpose-Container - Special-Purpose-Container sind Behälter für spezielle Einsatzgebiete. Zu dieser Gruppe zählen die so genannten Internal frames, Layered panes sowie die Root panes. - Internal frames (Interne Rahmen) verhalten sich ähnlich den Frames und werden gebraucht, wenn mehrere Frames gleichzeitig geöffnet sein sollen. - Layered panes werden zu Darstellung von überlappenden Komponenten verwendet - Jeder Container, der über einen Root pane verfügt, enthält auch automatisch ein Layered pane - Root pane werden automatisch von den Top-Level-Containern erzeugt Aus: Java als erste Programmiersprache, Goll/Weiß/Müller 3. Auflage d) Weitere Komponenten - Basic Controls sind Schaltflächen, Radiobuttons oder Checkboxen, sowie Listenfelder, Comboboxen, Menüs, Schieberegler und Textfelder. - Nicht-editierbare Komponenten zur Anzeige von Informationen sind Fortschrittsbalken, Tooltips und Labels. e) Layout-Manager Es gibt sechs verschiedene Layout Manager: - FlowLayout - GridLayout - BorderLayout - CardLayout 8 / 53
9 - GridBagLayout - BoxLayout - Jedem Bereich kann eine Komponente zugeordnet werden. - Wenn mehrere Komponenten in einen Bereich angeordnet werden sollen, muss man einen Trick anwenden: - Es muss eine Instanz der Klasse Box erzeugt werden, welche dann mehrere Komponenten aufnehmen kann und diese Box dann einem Bereich im BorderLayout zuordnen. f) Layout-Beispiele import javax.swing.*; import java.awt.*; import java.awt.event.*; public class FlowLayoutExample extends JFrame { public FlowLayoutExample() { super("flowlayoutexample"); FlowLayout layout = new FlowLayout(FlowLayout.CENTER); Container contentpane = getcontentpane(); contentpane.setlayout(layout); JButton button1 = new JButton("Button1"); JButton button2 = new JButton("Button2"); JButton button3 = new JButton("Button3"); JButton button4 = new JButton("Button4"); JButton button5 = new JButton("Button5"); JButton button6 = new JButton("Button6"); JButton button7 = new JButton("Button7"); JButton button8 = new JButton("Button8"); JButton button9 = new JButton("Button9"); 9 / 53
10 contentpane.add(button1); contentpane.add(button2); contentpane.add(button3); contentpane.add(button4); contentpane.add(button5); contentpane.add(button6); contentpane.add(button7); contentpane.add(button8); contentpane.add(button9); public static void main(string[]args) { JFrame rahmen = new FlowLayoutExample(); WindowListener listener = new WindowAdapter() { public void windowclosing(windowevent we) { System.exit(0); ; rahmen.addwindowlistener(listener); rahmen.pack(); rahmen.setvisible(true); 10 / 53
11 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class GridLayoutExample extends JFrame{ public GridLayoutExample(){ super("gridlayoutexample"); Container contentpane = getcontentpane(); contentpane.setlayout(new GridLayout(4,3,10,20)); JButton button1 = new JButton("Button1"); JCheckBox checkbox2 = new JCheckBox("Checkbox2"); JButton button3 = new JButton("Button3"); JButton button4 = new JButton("Button4"); JButton button5 = new JButton("Button5"); JButton button6 = new JButton("Button6"); JButton button7 = new JButton("Button7"); JButton button8 = new JButton("Button8"); JTextField textfield9 = new JTextField("TextField9"); JButton button10 = new JButton("Button10"); contentpane.add(button1); contentpane.add(checkbox2); contentpane.add(button3); contentpane.add(button4); contentpane.add(button5); contentpane.add(button6); contentpane.add(button7); contentpane.add(button8); contentpane.add(textfield9); contentpane.add(button10); 11 / 53
12 public static void main(string[]args){ JFrame rahmen = new GridLayoutExample(); WindowListener listener = new WindowAdapter() { public void windowclosing(windowevent we) { System.exit(0); ; rahmen.addwindowlistener(listener); rahmen.setsize(300,100); rahmen.setvisible(true); import javax.swing.*; import java.awt.*; import java.awt.event.*; public class BorderLayoutExample extends JFrame{ public BorderLayoutExample(){ super("borderlayoutexample"); Container contentpane = getcontentpane(); contentpane.setlayout(new BorderLayout(5,0)); JButton buttonnorth = new JButton("North"); JButton buttonsouth = new JButton("South"); JButton buttoncenter = new JButton("Center"); JButton buttonwest = new JButton("West"); JButton buttoneast = new JButton("East"); 12 / 53
13 contentpane.add("north", buttonnorth); contentpane.add("south", buttonsouth); contentpane.add("center", buttoncenter); contentpane.add("west", buttonwest); contentpane.add("east", buttoneast); public static void main(string[]args) { JFrame rahmen = new BorderLayoutExample(); WindowListener listener = new WindowAdapter() { public void windowclosing(windowevent we) { System.exit(0); ; rahmen.addwindowlistener(listener); rahmen.pack(); rahmen.setvisible(true); import javax.swing.*; import java.awt.*; import java.awt.event.*; public class JPanelExample extends JFrame{ public JPanelExample(){ super("jpanelexample"); Container contentpane = getcontentpane(); contentpane.setlayout(new BorderLayout()); 13 / 53
14 JPanel northpanel JPanel southpanel = new JPanel(); = new JPanel(); contentpane.add("north", northpanel); contentpane.add("south", southpanel); JButton button1 = new JButton("Button1"); JButton button2 = new JButton("Button2"); JButton button3 = new JButton("Button3"); JButton button4 = new JButton("Button4"); northpanel.setlayout(new FlowLayout(FlowLayout.CENTER)); northpanel.add(button1); northpanel.add(button2); northpanel.add(button3); northpanel.add(button4); JCheckBox checkbox = new JCheckBox("Checkbox"); JTextField textfield = new JTextField("TextField"); JTextArea textarea = new JTextArea("TextArea"); JLabel label = new JLabel("Label"); southpanel.setlayout(new GridLayout(4,0)); southpanel.add(checkbox); southpanel.add(textfield); southpanel.add(textarea); southpanel.add(label); public static void main(string[]args){ JFrame rahmen = new JPanelExample(); WindowListener listener = new WindowAdapter() { public void windowclosing(windowevent we) { System.exit(0); ; rahmen.addwindowlistener(listener); rahmen.pack(); rahmen.setvisible(true); 14 / 53
15 SWING FOR SMARTIES 1) Events Ein Event wird von AWT oder SWING -Komponenten als Reaktion auf eine Eingabe eines Benutzers generiert. AWT und SWING verwenden dieselben Ereignisse. Die Ereignisbehandlung beruht auf dem Delegations-Modell. Durch das Verwenden des Delegation-Modell werden die GUI und Anwendungsklassen von einander getrennt. Das Event-Objekt verarbeitet die Ereignisse nicht selbst sondern gibt das Ereignis an einen so genannten EventListener weiter. EventListener tragen ein spezielles Interface ein und melden sich bei Bedarf bei der Event-Quelle an. Es steht für jedes EventListener-Interface mit mehr als einer Methode eine Adapterklasse zur Verfügung. a) Action Der ActionEvent ist der bekannteste und am häufigsten verwendetste Eventtyp. Er wird ausgelöst durch das betätigen von Buttons, das Drücken der Enter -oder Returntaste in einem Textfeld und die Auswahl eines Eintrages in einem Menü. Die Methode zum Anmelden des ActionEventListener: addactionlistener(...) Die Methode zur Verarbeitung des ActionEvent: actionperformed(actionevent ae) Wichtige Methoden: getactioncommand() um zu erkennen welche Componente den ActionEvent erzeugt hat 15 / 53
16 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ActionEventExample extends JFrame implements ActionListener { private JMenuBar jmenubar1; private JMenu jmenu1; private JMenu jmenu2; private JMenuItem jmenuitem1; private JMenuItem jmenuitem2; private JMenuItem jmenuitem3; private JMenuItem jmenuitem4; private JLabel jlabel1; public ActionEventExample() { super("actioneventexample"); BorderLayout layout = new BorderLayout(); Container contentpane = getcontentpane(); contentpane.setlayout(layout); jlabel1 = new JLabel("Das Menue wurde noch nicht bedient"); jmenubar1 = new JMenuBar(); jmenu1 = new JMenu(); jmenu2 = new JMenu(); jmenuitem1 = new JMenuItem(); jmenuitem2 = new JMenuItem(); jmenuitem3 = new JMenuItem(); jmenuitem4 = new JMenuItem(); 16 / 53
17 setjmenubar(jmenubar1); jmenu1.settext("menue A"); jmenu2.settext("menue B"); jmenuitem1.settext("menue A - 1"); jmenuitem2.settext("menue A - 2"); jmenuitem3.settext("menue B - 1"); jmenuitem4.settext("menue B - 2"); jmenu1.add(jmenuitem1); jmenu1.add(jmenuitem2); jmenu2.add(jmenuitem3); jmenu2.add(jmenuitem4); jmenubar1.add(jmenu1); jmenubar1.add(jmenu2); jmenuitem1.addactionlistener(this); jmenuitem2.addactionlistener(this); jmenuitem3.addactionlistener(this); jmenuitem4.addactionlistener(this); contentpane.add("center", jlabel1); pack(); public static void main(string[]args) { JFrame rahmen = new ActionEventExample(); WindowListener listener = new WindowAdapter() { public void windowclosing(windowevent we) { System.exit(0); ; rahmen.addwindowlistener(listener); rahmen.show(); 17 / 53
18 public void actionperformed(java.awt.event.actionevent actionevent) { Object quelle = actionevent.getsource(); if(quelle == jmenuitem1) jlabel1.settext("menue A - 1 ausgewählt"); if(quelle == jmenuitem2) jlabel1.settext("menue A - 2 ausgewählt"); if(quelle == jmenuitem3) jlabel1.settext("menue B - 1 ausgewählt"); if(quelle == jmenuitem4) jlabel1.settext("menue B - 2 ausgewählt"); b) Adjustment Der AdjustementEvent tritt auf wenn Rollbalken oder Scrollbars bedient werden. Hier repräsentiert der Scrollbar oder Schieberegler einen bestimmten Wert der über den AdjustmentEvent erfragt werden kann. Die Methode zur Anmeldung des AdjustmentEventListener: addadjustmentlistener(...) Die Methode zur Verarbeitung des AdjustmentEvent: adjustmentvaluechanged(adjustmentevent adj) Wichtige Methoden: getvalue() zum Auslesen des Wertes des Schiebereglers als int 18 / 53
19 c) Item Der ItemEvent tritt bei der Verwendung von Checkboxen, in Menüeinträgen, Buttons, Comboboxen und Radiobuttons auf. Die Methode zur Anmeldung des ItemEventListener: additemlistener(...) Die Methode zur Verarbeitung des ItemEvent: itemstatechanged(itemevent ie) Wichtige Methoden: hat getsource() um zu erkennen welches Objekt den Event ausgelöst d) Key Um Daten einzugeben ist die Tastatur noch immer die wichtigste Möglichkeit. Durch das drücken, halten, loslassen, von Tasten werden KeyEvents ausgelöst. Die Methode zur Anmeldung des ItemEventListener: addkeylistener(...) Die Methode zur Verarbeitung des KeyEvent: - Drücken einer Taste bewirkt keypressed(keyevent ke) - Loslassen einer Taste bewirkt: keyreleased(keyevent ke) - Kurzes Antippen einer Taste bewirkt: keytyped(keyevent ke) Wichtige Methoden: - getkeychar() liefert den Wert eines gedrückten Zeichens als char-objekt zurück - getkeycode() liefert den Wert eines gedrückten Zeichens als int-wert zurück der den Zeichencode des Zeichens entspricht - getkeystring() liefert über getkeychar() hinaus bei Tasten wie F9, Alt, Strg oder Tab einen ganzen String als Beschreibung z.b. bei Pos1 liefert die Funktion dann auch Pos1 und nicht nur ein char-objekt 19 / 53
20 e) Window Der WindowsEvent wird bei jedem Fenster zum Schließen verwendet. Ohne die Verwendung des WindowsEvent müsste die Konsole über die Eingabeaufforderung geschlossen (Strg-C) geschlossen werden. Durch den WindowEvent werden die Funktionen Minimieren, Maximieren und Schließen zur Verfügung gestellt. Die Methode zur Anmeldung des WindowEventListener: addwindowlistener(...) Die Methode zur Verarbeitung des WindowEvent: - Schließen des Fenster: windowclosing(windowsevent we) - Aktivieren des Fenster: windowactivated(windowsevent we) - Deaktivieren des Fenster: windowdeactivated(windowsevent we) - vom Minimiert- zum Normalzustand: windowdeiconified(windowsevent we) - vom Normal- zum Minimiertzustand: windowiconified(windowsevent we) - Öffnen des Fenster: windowopened(windowsevent we) f) Mouse Die Mouse ist für graphische Anwendungen das wichtigste Eingabegerät, deshalb werden von Java dafür Events zur Verfügung gestellt. Der MouseListener reagiert nur auf die Verwendung der verschiedenen Mouse-Tasten. Für die Bewegungen der Mouse bzw. für das Anzeigen der Mouse-Position wird ein MouseMotionEvent verwendet. Die Methode zur Anmeldung des MouseEventListener: addmouselistener(...) Die Methode zur Verarbeitung des MouseEvent: - Klicken auf eine Komponente: mouseclicked(mouseevent me) - Maus betritt eine Komponente: mouseentered(mouseevent me) - Maus verlässt eine Komponente: mouseexited(mouseevent me) - Maustaste auf einer Komponente gedrückt: mousepressed(mouseevent me) - Maustaste wieder loslassen: mousereleased(mouseevent me) 20 / 53
21 g) MouseMotion Der MouseMotionListener ist die Ergänzung zum MouseListener der sich nur um die Ereignisse bei den Mouse-Tasten kümmert. Der MouseMotionListener behandelt normale Mausbewegungen und Mausbewegungen mit gedrückter Maustaste. Die erste Funktion ist sinnvoll wenn man die Position der Maus auf dem Bildschirm oder in einem Programm erhalten möchte. Die zweite Funktion findet Verwendung beim Verschieben vom Fenster oder Komponenten. Die Methode zur Anmeldung des MouseMotionEventListener: addmousemotionlistener(...) Die Methode zur Verarbeitung des MouseMotionEvent: - normale Bewegung der Maus: mousemoved(mouseevent me) - Mausbewegung mit gedrückter Maustaste: mousedragged(mouseevent me) Wichtige Methoden: - getx() liefert den horizontalen Wert der Maus-Position - gety() liefert den vertikalen Wert der Maus-Position Die beiden Funktion können nur innerhalb der Funktion mousemoved() verwendet werden. 21 / 53
22 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MouseEventExample extends JFrame { private JTextArea textarea = new JTextArea(5, 30); private Jlabel = new JLabel(); public MouseEventExample() { super("mouseeventexample"); Container contentpane = getcontentpane(); contentpane.setlayout(new BorderLayout()); contentpane.add(textarea, BorderLayout.CENTER); contentpane.add(label, BorderLayout.SOUTH); textarea.addmousemotionlistener(new MouseHandler()); pack(); public static void main(string[]args) { JFrame rahmen = new MouseEventExample(); WindowListener listener = new WindowAdapter() { public void windowclosing(windowevent e) { System.exit(0); ; rahmen.addwindowlistener(listener); rahmen.show(); class MouseHandler extends MouseMotionAdapter { public void mousemoved(mouseevent e) { label.settext("koordinaten: x-position: " + e.getx() + " y-position: " + e.gety()); 22 / 53
23 h) Component Der ComponentEventListener wird zum verschieben, verstecken, und wieder sichtbar machen von Komponenten verwendet. Die Methode zur Anmeldung des ComponentEventListener: addcomponentlistener(...) Die Methode zur Verarbeitung des ComponentEvent: - Aufruf bei Veränderung der Komponentengröße: componentresized(componentevent ce) - Aufruf bei Verschieben der Komponente: componentmoved (ComponentEvent ce) - Aufruf wenn die Komponente wieder sichtbar wird: componentshown(componentevent ce) - Aufruf wenn die Komponente unsichtbar wird: componenthidden(componentevent ce) i) Focus Um in einer Anwendung die Tastatur verwenden zu können muss die Anwendung den Focus haben, sprich die gerade verwendete Anwendung sein. Die Objekte die den Focus besitzen sind stärker umrandet und haben die stärkere Farbe im Fensterkopf. In einer einzelnen Anwendung hat auch immer nur eine Komponente den Focus und ist durch eine Eingabemarke gekennzeichnet, den so genannten Cursor Die Methode zur Anmeldung des FocusEventListener: addfocuslistener(...) Die Methode zur Verarbeitung des FocusEvent: - bei Verlust des Focus: focuslost(focusevent fe) - bei Erhalt des Focus: focusgained(focusevent fe) Wichtige Methoden: - getsource() liefert die Komponente die den Event ausgelöst hat 23 / 53
24 j) ListSelection Der ListSelectionEvent wird eingesetzt wenn über List -oder Komboboxen Elemente ausgewählt werden sollen. Bei der Behandlung der ListSelectionEvents ist eine Besonderheit zu erwähnen. Anstatt des normalerweise zu importierenden Paketes java.awt.event.* ist das Paket javax.swing.event.* zu importieren. Der Grund dafür ist das es zwei unterschiedliche addlistselectionlistener(...) gibt. Die Methode zur Anmeldung des ListSelectionListener: addlistselectionlistener(...) Die Methode zur Verarbeitung des ListSelectionEvent: - Meldet sich wenn ein anderer Wert in der Liste ausgewählt wird: valuechanged(listselectionevent lse) Wichtige Methoden: - addselectioninterval(a, b) bestimmt das Intervall mit den Werten die schon am Anfang ausgewählt sind - getvalueisadjusting() liefert zurück ob ein Listenelement ausgewählt ist oder nicht - getfirstindex() gibt an, welches Element das erste aller selektierten in der Liste ist - getlastindex() gibt an, welches Element das letzte aller selektierten in der Liste ist 24 / 53
25 k) Text Der TextEventListener verarbeitet Events im Bereich TextArea und TextField. Die Verarbeitung von Veränderungen im TextArea und TextField werden über den TextEventListener verarbeitet. Die Methode zur Anmeldung des TextEventListener: addtextlistener(...) Die Methode zur Verarbeitung des TextEvent: - Meldet wenn sich Änderungen im TextArea oder im TextField ergeben textvaluechanged(textevent te) 25 / 53
26 2) Implementierung Für die Implementierung von Listenern gibt es mehrere Möglichkeiten. Bei allen Implementierungsmöglichkeiten stehen immer die Methoden addxyzlistener() und removexyzlistener() zum Anmeldung bzw. zum Abmelden in der Klasse zur Verfügung. Der Event wird über Klasse erzeugt in der addxyzlistener() und removexyzlistener() deklariert sind. a) über Interface Die erste Variante zur Implementierung eines Events ist über Listener. Über implements XYZListener wird das zum Event passende Interface geladen und das Interface stellt dann seine Methoden zur Verfügung bzw. wünscht das alle seine Methoden überschrieben werden, ansonsten meldet der Compiler die Klasse soll als abstrakte Klasse dargestellt werden, weil nicht alle Methoden des Interface in der Klasse deklariert sind. Public class XYZEventDemo extends Applet implements XYZListener b) oder mit Adapterklasse Die zweite Variante ist die Implementierung über Adapterklasse. Das Prinzip ist ähnlich, es werden wieder Methoden in der Benutzerklasse überschrieben, aber in diesem Fall nur die vom Benutzer erwünschten und nicht alle wie bei der Lösung über Interface. Die Adapterklasse implementiert selbst das Interface und schreibt leere Methoden in ihren Klassenrumpf was zur Folge hat das die Benutzer nur die Methoden überladen müssen diese wirklich brauchen und nicht alle. Da man in Java aber nur von einer Klasse erben kann, aber beliebig viele Interfaces implementieren kann ist oft die Interface-Lösung einfacher realisierbar sein. Public class XYZHandler extends XYZAdapter Adapterklassen gibt es nur zu EventListener mit mehr als einer ausführbaren Methode. 26 / 53
27 c) Liste über EventListenerInterfaces und Adapterklassen Event-Listener-Interface Adapterklasse Methoden Action --- actionperformed(actionevent) Adjustment --- AdjustmentValueChanged (AdjustmentEvent) Item --- ItemStateChanged(ItemEvent) Key KeyAdapter keypressed(keyevent) keyreleased(keyevent) keytyped(keyevent) Window WindowAdapter windowclosing(windowsevent we) windowactivated(windowsevent we) windowdeactivated(windowsevent we) windowdeiconified(windowsevent we) windowiconified(windowsevent we) windowopened(windowsevent we) Mouse MouseAdapter mouseclicked(mouseevent me) mouseentered(mouseevent me) mouseexited(mouseevent me) mousepressed(mouseevent me) mousereleased(mouseevent me) MouseMotion MouseMotionAdapter mousedragged(mouseevent me) mousemoved(mouseevent me) Component ComponentAdapter componentresized(componentevent ce) componentmoved (ComponentEvent ce) componentshown(componentevent ce) componenthidden(componentevent ce) Focus FocusAdapter focusgained(focusevent fe) focuslost(focusevent fe) ListSelection --- valuechanged(listselectionevent lse) Text --- TextValueChanged(TextEvent te) 27 / 53
28 3) Aufbau eines EventHandlers Für die Implementierung des EventHandlers gibt es mehrere Möglichkeiten. Zum einen die Implementierung direkt in der Klasse selbst über Public class XYZHandler extends XYZAdapter oder Public class XYZEventDemo extends Applet implements XYZListener oder über eine innere Klasse. a) in der gleichen Klasse Wenn der Event über die Benutzerklasse direkt behandelt werden soll, sind einige Fragestellungen zu klären. - der XYZListener muss von der Benutzerklasse selbst implementiert werden oder über eine Adapterklasse zur Verfügung gestellt werden. Problematisch wird es, wenn mehrere Adapter zur Verfügung gestellt werden sollen, denn das ist so nicht möglich. Die Implementierung mehrerer Interfaces ist dagegen problemlos möglich. - die Anmeldung des EventListeners erfolgt über die Methode: addxyzlistener(this); this deshalb weil die Klasse selbst den XYZListener implementiert - die Methoden zur Bearbeitung der Events (z.b actionperformed(actionevent e)) können an beliebiger Stelle in der Klasse geschrieben werden b) als innere Klasse Die zweite und wesentlich komfortabler Lösung ist über eine innere Klasse. - der Name der innere Klasse ist frei wählbar, aber oft werden wie XYZBearbeiter oder XYZHandler verwendet. - Der XYZListener wird von der inneren Klasse implementiert oder über eine Adapterklasse zur Verfügung gestellt werden. Das Problem mit mehreren Adaptern kann dadurch gelöst werden in dem man jeder Eventgruppe eine eigene innere Klasse zur Verfügung stellt. Die Implementierung mehrerer Interfaces ist dagegen problemlos möglich, wobei man in einer inneren Klasse aus Übersichtlichkeitsgründen nur eine Eventgruppe bearbeiten sollte. Für jeden weiteren Event bzw. Eventgruppe sollte jeweils eine neue 28 / 53
29 innere Klasse definiert werden. - die Anmeldung des EventListeners erfolgt über die Methode: addxyzlistener(new EventHandler()); - - Die innere Klasse sieht so aus (innere Klasse fett): public class UserClass { private int ; public UserClass {... komponente.addxyzlistener(new XYZHandler()); komp.addxyzlistener(new XYZBearbeiter());... class XYZHandler implements XYZListener { public void handlingmethod(xyz Event) { class XYZBearbeiter extends XYZAdapter { public void handlingmethod(xyz Event) { 29 / 53
30 c) anonyme Klasse Die dritte Möglichkeit ist über eine anonyme Klasse. Dort wird die Handler-Klasse direkt in den addxyzlistener() eingebaut bzw. er wird in der Methode erzeugt. - Die Möglichkeiten sind ähnlich wie bei inneren Klassen - Es kann aber in einer anonymen Klasse immer nur eine Methode bearbeitet werden - Die anonyme Klasse sieht so aus (anonyme Klasse fett): public class UserClass { private int ; public UserClass {... komponente.addxyzlistener(new XYZListener(){ public void xyzmethod(xyzevent e){ );... komp.addxyzlistener(new XYZAdapter(){ public void xyzmethod(xyzevent e){ ); / 53
31 d) Übersicht über Komponenten und die zugehörigen Events Komponente Action Text Focus Mouse Key Item ListSelectio n Windo w JButton * * * * * JCheckBox * * * * * JColorChooser * * * JComboBox * * * * * JDialog * * * * JEditorPane * * * JFileChooser * * * * JFrame * * * * JInternalFrame * * * JList * * * * JMenu * * * JMenuItem * * JOptionPane * * * JPasswordField * * * JPopupMenu * * * * JProgressBar * * * JRadioButton * * * * * JSlider * * * JTabbedPane * * * JTable * * * * JTextArea * * * * * JTextField * * * * JTextPane * * * JToggleButton * * * * * JTree * * * JViewport * * * Quelle: Java-Swing Ralf Jesse bhv 31 / 53
32 4) Weitere Komponenten Die in diesem Kapitel dargestellten Komponenten sollen einen weiteren Einblick auf Java-Swing liefern. Die Vorstellung stellt Java-Swing nur auszugsweise vor und ist nicht vollständig. Weitere Informationen sind in der JavaDokumentation zu finden. a) Look and Feel In Swing ist es möglich das Erscheinungsbild der Java-Anwendungen zu ändern. Dies geschieht über das sogenannte Look and Feel der Anwendung. Einstellung des Look and Feel erfolgt folgendermaßen: public static void main(string[]args){ try { UIManager.setLookAndFeel(getCrossPlatformLookAndFeelClassName()); catch(exception e) { // ab hier wird das UserInterface erzeugt // Menues, Bottons, Labels und andere Komponenten Es werden vier verschiedene Look and Feel Arten von Java zur Verfügung gestelllt. Der Standard LookAndFeel ist der Metal-LookAndFeel. Es ist daraufhinzuweisen das aus lizenzrechtlichen Gründen nicht alle Motive in allen Betriebssystemen zur Verfügung stehen. 1.Variante: Metal-LookAndFeel Als Standard-Variante ist es in allen Betriebssystemen verfügbar und muss nicht explizit implementiert werden, sondern wird Standard mäßig bereitgestellt. 2.Variante: Windows-LookAndFeel Bei diesem LookAndFeel handelt es sich um eine Variante die speziell auf Windows zugeschnitten ist. Die Variante ist nicht für alle Plattformen z.b. für Apple Macintosh verfügbar. 32 / 53
33 3.Variante: Motif-LookAndFeel Diese Variante ist typisch für die graphische Oberfläche von Sun Solaris-Maschinen. 4.Variante: Macintosh-LookAndFeel Diese Variante ist typisch für die graphische Oberfläche von Macintosh-Maschinen. Die Variante ist nicht für alle Plattformen z.b. für Windows verfügbar. 33 / 53
34 Beispiel zur Steuerung des LookAndFeel import java.awt.*; import java.awt.event.*; import javax.swing.*; public class LookAndFeelExample extends JFrame implements ActionListener { // Globale Bezeichner fuer Look and Feels // 1. Metal static String metal = "javax.swing.plaf.metal.metallookandfeel"; // 2. Windows static String windows = "com.sun.java.swing.plaf.windows.windowslookandfeel"; // 3. Motif static String motif = "com.sun.java.swing.plaf.mofif.motiflookandfeel"; // 4. MacIntosh static String mac = "javax.swing.plaf.mac.maclookandfeel"; static JButton button1 = new JButton("Metal"); static JButton button2 = new JButton("Windows"); static JButton button3 = new JButton("Motif"); static JButton button4 = new JButton("Mac"); // Zusaetzliches Element: JComboBox final static String[] eintraege = new String[] { "Eintrag 1", "Eintrag 2", "Eintrag 3", "Eintrag 4", "Eintrag 5", ; static JComboBox combox = new JComboBox(eintraege); // Konstruktor der Klasse LookAndFeelExampel public LookAndFeelExample() { // Titel der Applikation super("lookandfeelexampel"); // Content pane ermitteln und Layout festlegen Container contentpane = getcontentpane(); contentpane.setlayout(new FlowLayout()); // Hinzufügen der ActionListener 34 / 53
35 button1.addactionlistener(this); button2.addactionlistener(this); button3.addactionlistener(this); button4.addactionlistener(this); // Hinzufügen der Schaltflaechen contentpane.add(button1); contentpane.add(button2); contentpane.add(button3); contentpane.add(button4); // Combox hinzufuegen contentpane.add(combox); // Content pane festlegen setcontentpane(contentpane); public void actionperformed(actionevent e) { Object quelle = e.getsource(); // Look and Feel : Metal if (quelle == button1) { try { this.settitle("look and Feel : Metal"); UIManager.setLookAndFeel(metal); catch(exception e1) { this.settitle("hat leider nicht geklappt..."); SwingUtilities.updateComponentTreeUI(this.getContentPane()); // Look and Feel : Windows if (quelle == button2) { try { this.settitle("look and Feel : Windows"); UIManager.setLookAndFeel(windows); catch(exception e2) { this.settitle("hat leider nicht geklappt..."); SwingUtilities.updateComponentTreeUI(this.getContentPane()); // Look and Feel : Motif 35 / 53
36 if (quelle == button3) { try { this.settitle("look and Feel : Motif"); UIManager.setLookAndFeel(motif); catch(exception e3) { this.settitle("hat leider nicht geklappt..."); SwingUtilities.updateComponentTreeUI(this.getContentPane()); // Look and Feel : Macintosh if (quelle == button4) { try { this.settitle("look and Feel : Macintosh"); UIManager.setLookAndFeel(mac); catch(exception e4) { this.settitle("hat leider nicht geklappt..."); SwingUtilities.updateComponentTreeUI(this.getContentPane()); // Eintrittspunkt in Applikation public static void main(string[] args) { JFrame rahmen = new LookAndFeelExample(); WindowListener wl = new WindowAdapter() { public void windowclosing(windowevent we) { System.exit(0); ; rahmen.addwindowlistener(wl); rahmen.setsize(300, 200); rahmen.setvisible(true); 36 / 53
37 b) Borders Über die Klasse JComponent von der die meisten Swing-Komponenten abgeleitet sind, ist es möglich über die Methode setborder() verschiedene Rahmen zur Verfügung zu stellen. AbstractBorder: Basisklasse der Rahmentypen. Standardmäßig ist dieser leer. Größe nicht festgelegt. BevelBorder: Rahmen mit Schrägkanten. Dreidimensionaler Effekt. CompondBorder: aus zwei Rahmen zusammengesetzter Rahmentyp EmptyBorder: leerer und transparenter Rahmen. Rahmen wird quasi nicht angezeigt EtchedBorder: Rahmen erscheint als ob etwas weggeätzt wäre LineBorder: einfarbiger Rahmen beliebiger Stärke MatteBorder: Effekt wie bei einem matten Foto SoftBevelBorder: wie EtchedBorder, Kanten aber weich gezeichnet TitledBorder: beschrifteter Rahmen Das Border wird auf Komponenten wie Buttons, Listen und Boxen, aber auch für Panels angewendet. Methode: panel.setborder(borderfactory.xyzborder(xyzborder.xyzstatic)); Die genauere Beschreibung der einzelnen Varianten ist über die Java- Dokumentation möglich. 37 / 53
38 import java.awt.*; import java.awt.event.*; import java.awt.color.*; import javax.swing.*; import javax.swing.border.*; public class BorderExample extends JFrame { public BorderExample() { super("borderexample"); Container contentpane = getcontentpane(); JPanel panel = new JPanel(); panel.setlayout(new GridLayout(4,2)); JButton button1 = new JButton("BevelBorder: Vertieft"); JButton button2 = new JButton("BevelBorder: Erhöht"); JButton button3 = new JButton("Empty Border"); JButton button4 = new JButton("EtchedBorder: Highlight"); JButton button5 = new JButton("EtchedBorder: Schatten"); JButton button6 = new JButton("LineBorder: Farbe = Blau"); JButton button7 = new JButton("MatteBorder: Farbe = Rot"); JButton button8 = new JButton("MatteBorder: Icons"); 38 / 53
39 panel.setborder(borderfactory.createtitledborder("panel mit Titelzeile")); button1.setborder(borderfactory.createbevelborder(bevelborder.lowered)); button2.setborder(borderfactory.createbevelborder(bevelborder.raised)); button3.setborder(borderfactory.createemptyborder()); button4.setborder(borderfactory.createetchedborder (getbackground().darker(),getbackground().brighter())); button5.setborder(borderfactory.createetchedborder (getbackground().brighter(),getbackground().darker())); button6.setborder(borderfactory.createlineborder(color.blue)); button7.setborder(borderfactory.creatematteborder(10,10,10,10,color.red)); button8.setborder(borderfactory.creatematteborder (10,10,10,10,new ImageIcon("grafik.gif"))); panel.add(button1); panel.add(button2); panel.add(button3); panel.add(button4); panel.add(button5); panel.add(button6); panel.add(button7); panel.add(button8); contentpane.add(panel); public static void main(string []args) { JFrame rahmen = new BorderExample(); WindowListener wl = new WindowAdapter(){ public void windowclosing(windowevent we) { System.exit(0); ; rahmen.addwindowlistener(wl); rahmen.setsize(300, 200); rahmen.setvisible(true); 39 / 53
40 c) Popup-Menüs Normale Menüs befinden sich am oberen Rand eines Fensters und sind immer sichtbar. Bei Popup-Menüs verhält es sich anders, sie werden erst zur Laufzeit sichtbar und werden durch ein spezielles Ereignis erzeugt, z.b. einen ActionEvent an einem Button. Popup-Menüs werden durch die Klasse JPopupMenu definiert und durch die Methode show() sichtbar gemacht. Die Methodik zum Aufbau eines Menüs läuft genauso ab wie bei einem normalen Menü. So werden als Untereintrag genauso JMenuItem verwendet. d) JProgressBar Um zu erkennen wie ein Programm bei der Abarbeitung eines Prozesses (Berechnungen, Dateizugriffe, Kopiervorgänge) fortschreitet wird ein ProgressBar eingesetzt. Der ProgressBar zeigt jeweils immer den aktuellen Fortschritt des Prozesses an bzw. das der Prozess noch aktiv ist und der Rechner noch nicht abgestürtzt ist. Es gibt verschiedene Methoden um einen ProgressBar richtig einzustellen und die volle Funktionalität zu nutzen. Mit der Methode setorientation() wird festgelegt, ob der ProgressBar horizontal oder vertikal angeordnet ist. Als Werte werden JProgressBar.VERTICAL und JProgressBar.HORIZONTAL eingesetzt. Mit der Methode setstringpainted() kann optional der Fortschrittswert in Prozent angegeben werden. Die Methode ist boolean und hat nur true und false als mögliche Werte. Es ist allerdings auch möglich mit der Methode setstring() einen festen Textwert anzugeben. Mit den Methoden setminimum() und setmaximum() werden die Unter- und Obergrenze des Intervalls festgelegt. Die Werte lassen sich mit getminimum() und getmaximum() ermitteln. Die Methode getpercentcomplete() liefert einen double-wert zurück, der den aktuellen Wert des Fortschrittsbalken darstellt. Die wichtigste Methode ist setvalue() durch die, das Programm in der Lage ist den Fortschrittsbalken zu ändern. 40 / 53
41 e) JColorChooser Über diese Klasse wird eine Farbauswahl ermöglicht. Es bestehen drei verschiedene Möglichkeiten dies zu realiseren. Die erste Möglichkeit ist die Auswahl über ein Muster. Die gewünschte Farbe muss nur ausgewählt werden und wird automatisch übernommen. 41 / 53
42 Die zweite Möglichkeit ist die Auswahl über einen Slider oder durch das Klicken auf einen Bereich im Area. Außerdem ist eine direkte Eingabe der Werte zusätzlich auch noch möglich. Die dritte Möglichkeit besteht darin die Farbe über den Rot-Grün-Blau-Anteil selbst zu mischen. 42 / 53
43 f) JFileChooser Ein sehr häufig verwendeter Anwendungsfall ist die Auswahl von Dateien. Folgende Dateioperationen müssen durchführbar sein: Öffnen, Speichern, Löschen, usw. Der JFileChooser verfügt über mehrere Konstruktoren: JFileChooser(File akt) ein aktuelles Verzeichnis wird direkt dem Konstruktor übergeben JFileChooser(File akt, FileSystemView fsv) verhindert das löschen und anzeigen von Systemdateien, Dateiattributen oder versteckten Dateien JFileChooser(FileSystemView fsv) wie beim zweiten Konstruktor, nur ohne aktuelles Verzeichnis JFileChooser(String such) Pfad für weitere Operationen wird direkt mit übergeben JFileChooser(String such, FileSystemView fsv) Kombination der letzten beiden Die wichtigsten Methoden des JFileChooser showsavedialog() öffnet Fenster zum Speichern von Dateien showopendialog() öffnet Fenster zum Öffnen von Dateien 43 / 53
44 g) JPasswordField Das JPasswordField ist besondere Form des JTextField. Dort sollen Passwörter für den Zugang zu geschützten Daten eingegeben werden können. Um das ausspähen von Daten zu erschweren, werden die eingegebenen Zeichen schon bei der Eingabe durch andere Zeichen ersetzt. Standardmäßig wird als Ersatzzeichen für die verdeckte Passworteingabe der Stern * verwendet. Mit der Methode setechochar( & ) kann auch ein beliebig anderes Zeichen als ein Stern ausgewählt werden. Um das Password zu laden wird die Methode getpassword() verwendet. Die Methode liefert ein Array von Char-Objekten zurück. Um festzustellen ob überhaupt ein Ersatzzeichen gewählt ist verwendet man die Methode echocharisset(). 44 / 53
45 h) verschiedene Panel-Typen Bei AWT werden die Komponenten direkt einem Container hinzugefügt. In Swing werden die Komponenten Panel-Objekten zugeordnet. Swing stellt einige Panel-Typen zur Verfügung. JLayeredPane gibt der Anwendung eine gewisse Tiefe und macht Sie dreidimensional. Es gibt verschiedene Ebenen in denen Komponenten platziert werden können: DEFAULT_LAYER Ist die unterste Ebene auf der, die anderen Ebenen aufbauen und die, die meisten Komponenten aufnimmt. PALETTE_LAYER Diese Ebene nimmt bewegliche Elemente auf und befindet sich direkt über dem DEFAUL_LAYER. Komponenten in diesem Layer können andere Komponenten überlagern MODAL_LAYER Die Komponenten dieser Ebene überlagern immer alle anderen Komponenten POPUP_LAYER Diese Ebene enthält Popup-Dialoge, JToolText und andere Hilfskomponenten DRAG_LAYER Die Ebene liegt über allen anderen. Beim Verschieben liegen die Komponenten vorübergehend in dieser Ebene und kehren danach in die alte Ebene zurück. Zum Anzeigen und Ausblenden werden die Methoden movetofront() und movetoback() verwendet JDesktopPane erweitert die Funktionalität der Klasse JLayeredPane In diesem Pane werden normalerweise mehrere JInternalFrame platziert, wobei JInternalFrame jeder verschiedene Dokumente beinhalten kann JViewport hat die Funktionalität einer Lupe Über einen JViewport kann man Bilder und andere Dokumente die auf einer Seite keinen Platz haben verkleinern und vergrößern 45 / 53
46 JScrollPane bietet über den JViewport hinaus noch Funktionalitäten an Wenn das Bild oder Dokument eine gewisse Größe überschritten hat, befinden sich Rollbalken an den Rändern. Außerdem können links und oben noch Lineale zum Überprüfen der Bildgröße angefügt werden. JSplitPane ermöglicht das wechselseitige Verkleinerung bzw. Vergrößern von zwei Komponenten Zwei Komponenten werden jeweils in den für sie vorgesehenen Bereich geladen. Wenn das eine Objekt verkleinert wird, wird das andere Objekt automatisch vergrößert und natürlich umgekehrt genauso. i) JTable Ähnlich wie in Excel und Word ist es auch bei Swing möglich Tabellen einzufügen und zu bearbeiten. Die Klasse JTable stellt eine breite Palette von verschiedenen Möglichkeiten zur Bearbeitung von Tabellen bereit. Im Regelfall wird eine Tabelle auf einem JScrollPane aufgesetzt um alle Werte der Tabelle anzeigen zu können. Der Konstruktor der Klasse JTable: JTable(spalte, zeile) Methoden zur Bearbeitung von Tabellen: iscelleditable() zeigt an ob ein Feld editierbar ist setvalue() weißt einem Feld einen neuen Wert zu addcolumn() fügt Tabelle Spalte hinzu movecolumn() verschiebt Spalte in Tabelle Interface TableModel Interface TableColumnModel 46 / 53
47 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JTableExample extends JFrame { JTable tab = new JTable(10, 5); public JTableExample() { super("jtableexample"); Container contentpane = getcontentpane(); JScrollPane scrollpane = new JScrollPane(tab); JLabel label = new JLabel("Tabelle"); label.setfont(new Font("Arial", Font.BOLD, 26)); contentpane.setlayout(new BorderLayout()); contentpane.add(label, BorderLayout.NORTH); contentpane.add(scrollpane, BorderLayout.CENTER); public static void main(string []args) { JFrame rahmen = new JTableExample(); WindowListener wl = new WindowAdapter(){ public void windowclosing(windowevent we) { System.exit(0); ; rahmen.addwindowlistener(wl); rahmen.setsize(300, 200); rahmen.setvisible(true); 47 / 53
48 j) Tooltip Der Tooltip wird eingesetzt um Bedienoberflächen und Komponenten kurze Informationen beim Aufenthalt der Maus auf der Komponente mit zugeben. Die Klasse die, die Funktionalität zur Verfügung stellt ist JToolTip. Verwendete Methode heißt settooltiptext( Hier steht der Text ); k) Shortcuts & Mnemonic Über Shortcut und Mnemonic kann über Tastenkürzel eine Anwendung oder ein Menü gesteuert werden. Bekannte Shortcuts sind Strg-X zum Schließen einer Anwendung, oder Strg-S zum Speichern einer Anwendung. Die doppelte Verwendung desselben Kürzels ist verboten. Ein Mnemonic wird mit der Alt-Taste + einen Buchstaben verwendet, wobei in demselbem Menü-Block immer jeder Buchstabe nur einmal verwendet werden darf. Im nächsten Menü darf der Buchstabe aber wieder verwendet werden. Der Mnemonic kennzeichnet sich dadurch, dass der Buchstabe, der als Mnemonic verwendet werden soll, im Wort unterstrichen ist. 48 / 53
49 l) TabbedPane Anwendungen, die mehrere unterschiedliche Oberflächen besitzen, lassen sich auf bequem über eine Art Karteikarte (TabbedPane) programmieren. 49 / 53
50 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.net.url; public class JTabbedPaneExample extends JFrame { public JTabbedPaneExample() { super("jtabbedpaneexample"); Container contentpane = getcontentpane(); JTabbedPane tabbedpane = new JTabbedPane(); JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(); JPanel panel3 = new JPanel(); panel1.setlayout(new GridLayout(3,0)); panel1.add(new JButton("Button 1")); panel1.add(new JButton("Button 2")); panel1.add(new JButton("Button 3")); panel2.setlayout(new FlowLayout()); panel2.add(new JLabel("Label 1")); panel2.add(new JButton("Button")); panel3.setlayout(new BorderLayout()); panel3.add(new JButton("Nord"), BorderLayout.NORTH); panel3.add(new JButton("Ost"), BorderLayout.EAST); panel3.add(new JButton("Süd"), BorderLayout.SOUTH); panel3.add(new JButton("West"), BorderLayout.WEST); panel3.add(new JLabel("Label")); tabbedpane.add("teil 1", panel1); tabbedpane.add("teil 2", panel2); tabbedpane.add("teil 3", panel3); contentpane.setlayout(new BorderLayout()); contentpane.add(tabbedpane); 50 / 53
51 public static void main(string []args) { JFrame rahmen = new JTabbedPaneExample(); WindowListener wl = new WindowAdapter(){ public void windowclosing(windowevent we) { System.exit(0); ; rahmen.addwindowlistener(wl); rahmen.setsize(300, 200); rahmen.setvisible(true); 51 / 53
52 Übungen 1) JButton mit Icon Aufgabenstellung: Schreiben Sie eine Anwendung mit einem JFrame ( Groesse: 200x100, Titel: " JButton & Icon " ). In diesem Frame befindet sich ein JButton, beschriftet durch "Button mit Icon" und einem ImageIcon. Die Anwendung soll sich beenden, wenn der Frame geschlossen wird. 2) JCheckBoxes Aufgabenstellung: Schreiben Sie eine Anwendung mit einem JFrame ( Groesse: 200x150, Titel: " JCheckBoxEx " ). In diesem Frame befinden sich vier JCheckBoxes innerhalb einer ButtonGroup. Jede der CheckBoxes ist mit einer der Farben Blue, Red, Black und Orange beschriftet. Beim Starten der Anwendung ist Blue ausgewaehlt. Die Anwendung soll sich beenden, wenn das Fenster geschlossen wird. 52 / 53
53 3) JProgressBar Aufgabenstellung: Schreiben Sie eine Anwendung mit einem JFrame ( Groesse: 200x100, Titel: "JProgressBarEx" ). Innerhalb des Frames befindet sich ein JProgressBar und zwei JButtons mit den Beschriftungen "Start" und "Stop". Beim Drueken des Start-Buttons wird ein Thread initialisiert, der das Fortschreiten der ProgressBar bewirkt. Die ProgressBar nimmt dabei Werte zwischen 0 und 200 an, zwischen dem Hochzaehlen schlaeft der Thread jeweils fuer 60ms. Wird der Stop-Button gedruekt stoppt die ProgressBar und setzt den Fortschritt wieder auf 0, so dass sie beim erneuten Starten wieder von vorne anfaengt. Die Anwendung soll sich beenden, wenn das Fenster geschlossen wird. Tipp: Implementieren sie in ProgressThread Variablen, die zum Stoppen gesetzt werden koennen. 53 / 53
Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 21.05.2008 2 Was ist ein(e) GUI? GUI = Graphical User Interface = Graphische
Swing Lernen am Code Teil 1
Swing Lernen am Code Teil 1 Swing Fenster erzeugen import java.awt.* import java.awt.event.* import javax.swing.* class SwingDemo{ static JFrame Fenster; public static void main(string[] args){ } } Fenster
GUI Programmierung mit JAVA Swing
GUI Programmierung mit JAVA Swing Komponenten Layout Event Handling Imaging 2001 Thomas Weiler 1 JAVA Swing Bibliothek zur Erstellung grafischer Benutzerschnittstellen in JAVA Bietet Klassen für grafische
Java I Vorlesung 11 Graphische Oberflächen mit Swing
Java I Vorlesung 11 Graphische Oberflächen mit Swing 5.7.2004 Swing Komponenten Layout-Manager Events Swing und Threads Die Java-Plattform 2 Die Java-Plattform 3 "Hello World" in Swing HelloWorldS.java
Objektorientierte Software-Entwicklung
Objektorientierte Software-Entwicklung Priv.-Doz. Dr. Rolf Hennicker 08.01.2003 AWT und Swing AWT (Abstract Window Toolkit) und Swing 2 AWT (Abstract Window Toolkit) und Swing AWT und Swing bieten eine
NTB Druckdatum: 01.04.13 -
AWT UND SWING AWT = abstract windowing toolkit Bausteine Eigenes Fenster Programmcode steht nicht im Main, sondern in einer separaten Klasse extends JFrame JWindow selbstständiges Fenster, ohne Rahmen
JButton, JCheckBox, JRadioButton. Programmieren II. Vorlesung 7. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2009.
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2009 1 / 30 2 / 30 JButton, JCheckBox, JRadioButton In Swing existieren drei wesentliche Klassen für Schaltflächen: JButton für normale
Swing :Komponenten I (Teil 2)
l Bei Swing handelt es sich um eine Programmierschnittstelle und Grafikbibliothek zum Programmieren von grafischen Benutzeroberflächen l Swing stellt eine Menge von Klassen zur Verfügung l Swing wurde
Grundlagen der Programmierung APPLETS
Grundlagen der Programmierung APPLETS Inhalt dieser Einheit Java-Applets: Java-Applets Vor- und Nachteile Sicherheitskonzepte Methoden Einbetten in HTML Graphical User Interface 2 Java Applets Applets
Programmieren mit Swing
Jürgen Schlierf Rudolf Weber Programmieren mit Swing Einfuhrung in die Programmierung mit den Swing-Klassen in Java 2 HANSER Carl Hanser Verlag München Wien Inhaltsverzeichnis 1 Einleitung 1 1.1 Von Java
Objektorientierte Programmierung
Objektorientierte Programmierung Exkurs: Graphische Benutzeroberflächen FH Braunschweig/Wolfenbüttel Sommersemester 2009 1 / 22 Gliederung I Wiederholung Klassen, Objektorientierung (Kapitel 10,11) Exkurs:
GUI Programmierung in Java
vs und niemals mischen! Daher muss man sich für eine Klasse entscheiden 1 (Abstract Window Toolkit) schwergewichtige Alle Elemente werden vom Betriebssytem gemalt sehen aus wie alle anderen Programme auf
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen
1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung
Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben
Hochschule der Medien Prof Uwe Schulz 14 Juli 2010 Klausur Informatik, EDV-Nr 40301 Seite 1 von 5 Name: Matr Nr: Teil 2: Aufgaben Hilfsmittel: alle außer tragbare Computer und Nachbar Bearbeitungszeit:
Einstieg in die Informatik mit Java
1 / 14 Einstieg in die Informatik mit Java Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet
GRAFISCHE BENUTZERSCHNITTSTELLEN
Vorlesung 4.4 GRAFISCHE BENUTZERSCHNITTSTELLEN Dr. Philip Mayer # 1 GUIs Grafische Benutzerschnittstellen (GUIs, Graphical User Interfaces) bieten dem Benutzer Zugriff auf ein Anwendungssystem GUIs sind
Graphische Benutzungsoberflächen
Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen (graphical user interfaces, GUI) dienen zur interaktiven Bedienung von Programmen, Ein- und Ausgabe mit graphischen Techniken und visuellen
Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.
Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung
GUI-Programmierung. Teil I. Unterlagen zum Modul OOP mit Java V by MOU2/BFH-TI. Berner Fachhochschule Technik und Informatik
GUI-Programmierung mit Java Teil I Unterlagen zum Modul OOP mit Java V 3.0 2007 by WBR1/BFH-TI 2011 by MOU2/BFH-TI GUI-Programmierung V3.0 2011 by WBR1&MOU2/BFH-TI Lernziele Die Kursteilnehmer sind in
Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke
GUIs mit Swing Markus Reschke 28.08.2014 Beispiel: Ein einfaches GUI-Programm Siehe Painter.java Markus Reschke GUIs mit Swing 2 GUI Frameworks in Java AWT war das erste GUI-Framework, welches mit Java
AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de
Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben
Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster
Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.
Einbindung der Tastatur
Einbindung der Tastatur Auch die Tastatur kann man wie die Maus zur interaktiven Programmsteuerung verwenden. Bei der Maus ist stets klar, welche grafische Komponente bei einem Klick oder einer Bewegung
Swing Grundlagen. Andre Eichmann
Swing Grundlagen Andre Eichmann Inhaltsverzeichnis Swing: Grundlagen - Einleitung - Ein einleitendes Beispiel Swing: Container und Menüs - Hauptfenster - Menüs Swing: Grundlagen Nachteile von AWT: - Schwierig,
...erinnern Sie sich? oopjs4b / kwhbkd4r
...erinnern Sie sich? oopjs4b / kwhbkd4r !" Ereignisbehandlung in awt/swing führt Liste interessierter Behandler GUI- Komponente (z.b. Knopf) wird eingetragen trägt ein Ereigniskanal fertigt ab neuer Behandler
2A Basistechniken: Weitere Aufgaben
2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen
Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt SS 2008 1 / 22 2 / 22 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische Benutzeroberfläche (engl: Graphical User Interface,
Einführung in Swing. Graphical User Interface
Einführung in Swing Ho Ngoc Duc IFIS - Universität zu Lübeck Graphical User Interface Ein GUI-Programm beinhaltet: Graphische Darstellung der Anwendungsdaten und Interaktionsmöglichkeiten in Fenstern Steuerung
Kap. 36. SWING: Menüs. und weitere SWING-Container. Seán Dempsey
Kap. 36 SWING: Menüs und weitere SWING-Container Seán Dempsey Grundlagen von Menüs Hauptklasse: JMenuBar SWING- Entsprechung der AWT-Menüklasse MenuBar JMenuBar Menüleiste (JMenuBar) enthält Menüs (JMenu)
Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2
Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau
Zwischenablage (Bilder, Texte,...)
Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen
Hinweise zum Übungsblatt Formatierung von Text:
Hinweise zum Übungsblatt Formatierung von Text: Zu den Aufgaben 1 und 2: Als erstes markieren wir den Text den wir verändern wollen. Dazu benutzen wir die linke Maustaste. Wir positionieren den Mauszeiger
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1
Kapitel 7 Grafische Benutzeroberflächen Grafische Benutzeroberflächen 1 Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen.
Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane
Hochschule Harz Programmierung2 Tutorial 04: FB Automatisierung und Informatik Dipl.-Inf., Dipl.-Ing. (FH) M. Wilhelm Programmierung 2 für MI / WI Thema: Swing, JSplitPane und I/O Versuchsziele Kenntnisse
Hilfe Bearbeitung von Rahmenleistungsverzeichnissen
Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Allgemeine Hinweise Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Grundlagen...3 1.2 Erstellen und Bearbeiten eines Rahmen-Leistungsverzeichnisses...
Mensch-Maschine-Interaktion
Universität Dortmund, Fachbereich Informatik Peter Bollweg, OH16 E08, [email protected], 6328 Constantin Timm, OH16 E06, [email protected], 6144 Christian Asche Dortmund, 19. Oktober
Mediator 9 - Lernprogramm
Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop
Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung
DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung Aufgabe Editor package BA.GUI.Swing; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.logging.level; import java.util.logging.logger;
Textgestaltung mit dem Editor TinyMCE Schritt für Schritt
Textgestaltung mit dem Editor TinyMCE Schritt für Schritt Folgender Artikel soll veröffentlicht und mit dem Editor TinyMCE gestaltet werden: Eine große Überschrift Ein Foto Hier kommt viel Text. Hier kommt
Objektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen
Menü Macro WinIBW2-Macros unter Windows7?... 1 Macros aufnehmen... 1 Menübefehle und Schaltflächen in Macros verwenden... 4 Macros bearbeiten... 4 Macros löschen... 5 Macro-Dateien... 5 Macros importieren...
Programme im Griff Was bringt Ihnen dieses Kapitel?
3-8272-5838-3 Windows Me 2 Programme im Griff Was bringt Ihnen dieses Kapitel? Wenn Sie unter Windows arbeiten (z.b. einen Brief schreiben, etwas ausdrucken oder ein Fenster öffnen), steckt letztendlich
Microsoft Visual Studio Community 2015
Microsoft Visual Studio Community 2015 Visual Studio Community 2015 ist eine kostenlose IDE mit leistungsfähigen Programmier- und Entwicklungswerkzeugen für Windows, ios und Android. Sie ist für einzelne
Java Projekt: Tic Tac Toe + GUI
Java Projekt: Tic Tac Toe + GUI Rechnerpraktikum aus Programmierung im WS 2005/06 unter der Leitung von Dr. Michael Hahsler Tadeh Amirian (h0253821) 10.01.2006 1) Problemdefinition Beim TicTacToe Spiel
Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen (engl.: "graphical user interface", GUI) in Java
GUI-Programmierung in Java GUI-Programmierung in Java 2002 Prof. Dr. Rainer Manthey Informatik II 1 AWT und Swing Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen
Wie halte ich Ordnung auf meiner Festplatte?
Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3
Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler
Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5
Grafische Benutzeroberflächen mit Swing
Grafische Benutzeroberflächen mit Swing KW 30, Zentralübung Informatik II 2006-07-24 Klausur: Stichpunkte 1. Auswertung System.out.println("abc" instanceof String); Ergebnis von instanceof ist ein boolean,
Text Formatierung in Excel
Text Formatierung in Excel Das Aussehen des Textes einer oder mehrerer Zellen kann in Excel über verschiedene Knöpfe beeinflusst werden. Dazu zuerst die betroffenen Zelle(n) anwählen und danach den entsprechenden
1. Allgemein 2. 2. Speichern und Zwischenspeichern des Designs 2. 3. Auswahl der zu bearbeitenden Seite 2. 4. Text ergänzen 3. 5. Textgrösse ändern 3
Inhaltsverzeichnis 1. Allgemein 2 2. Speichern und Zwischenspeichern des Designs 2 3. Auswahl der zu bearbeitenden Seite 2 4. Text ergänzen 3 5. Textgrösse ändern 3 6. Schriftart ändern 3 7. Textfarbe
Erstellen von x-y-diagrammen in OpenOffice.calc
Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei
Password Depot für ios
Password Depot für ios Inhaltsverzeichnis Erste Schritte... 1 Kennwörterdatei erstellen... 1 Neue Einträge erstellen... 3 Einträge / Gruppen hinzufügen... 3 Einträge / Gruppen kopieren oder verschieben...
Einführung in die Programmierung für NF. Übung 08
Einführung in die Programmierung für NF Übung 08 Inhalt Eventbehandlung in Java Swing Einführung in die Programmierung für NF Übung 08 2 Eventbehandlung in Java Swing Wir haben bereits einige grafische
Handbuch für Redakteure
Handbuch für Redakteure Erste Schritte... 1 Artikel erstellen... 2 Artikelinhalt bearbeiten... 3 Artikel bearbeiten... 3 Trennen der Druck- und der Online-Version.. 4 Grunddaten ändern... 5 Weitere Artikel-eigenschaften...
ECDL Europäischer Computer Führerschein. Jan Götzelmann. 1. Ausgabe, Juni 2014 ISBN 978-3-86249-544-3
ECDL Europäischer Computer Führerschein Jan Götzelmann 1. Ausgabe, Juni 2014 Modul Präsentation Advanced (mit Windows 8.1 und PowerPoint 2013) Syllabus 2.0 ISBN 978-3-86249-544-3 ECDLAM6-13-2 3 ECDL -
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik GUI-Programmierung mit Swing AWT und Swing Java enthält zwei Pakete zur Programmierung graphischer Oberflächen. java.awt: Das Abstract
Zahlen auf einen Blick
Zahlen auf einen Blick Nicht ohne Grund heißt es: Ein Bild sagt mehr als 1000 Worte. Die meisten Menschen nehmen Informationen schneller auf und behalten diese eher, wenn sie als Schaubild dargeboten werden.
Einführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
PowerPoint: Text. Text
PowerPoint: Anders als in einem verarbeitungsprogramm steht in PowerPoint der Cursor nicht automatisch links oben auf einem Blatt in der ersten Zeile und wartet auf eingabe. kann hier vielmehr frei über
Pfötchenhoffung e.v. Tier Manager
Pfötchenhoffung e.v. Tier Manager A.Ennenbach 01.08.2015 Tier Manager Inhalt Administrationsbereich Tiere auflisten & suchen Tier hinzufügen Tier bearbeiten (Status ändern, etc.) Administrationsbereich
Programmierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
http://www.tutego.com/ Schieberegler und analoge Anzeigen
http://www.tutego.com/ Schieberegler und analoge Anzeigen http://www.tutego.com/ JScrollBar Schieberegler Unter Swing ersetzt javax.swing.jscrollbardie Klasse java.awt.scrollbar. Direkt wird die Klasse
Die Textvorlagen in Microsoft WORD und LibreOffice Writer
Die Textvorlagen in Microsoft WORD und LibreOffice Writer Liebe Teilnehmer(-innen) am Landeswettbewerb Deutsche Sprache und Literatur Baden- Württemberg, Diese Anleitung soll Ihnen helfen Ihren Wettbewerbsbeitrag
Funktionstastenbelegung und Shortcuts
Funktionstastenbelegung und Shortcuts 1 1. Allgemein Folgende Tastenkombinationen können in KÖBU-Win genutzt werden, nicht aber in der Bibliographie und der PC-Kasse. Frei zu definieren unter KÖBU-Win
2. Im Admin Bereich drücken Sie bitte auf den Button Mediathek unter der Rubrik Erweiterungen.
Mediathek Die Mediathek von Schmetterling Quadra ist Ihr Speicherort für sämtliche Bilder und PDF-Dateien, die Sie auf Ihrer Homepage verwenden. In Ihrer Mediathek können Sie alle Dateien in Ordner ablegen,
Einführung in GUI-Programmierung. javax.swing
Einführung in GUI-Programmierung javax.swing GUI Graphical User Interface ( Grafische Benutzerschnittstelle ) Anschaulichere und leichtere Möglichkeit zur Dateneingabe und Kontrolle von Programmen Stellt
Jederzeit Ordnung halten
Kapitel Jederzeit Ordnung halten 6 auf Ihrem Mac In diesem Buch war bereits einige Male vom Finder die Rede. Dieses Kapitel wird sich nun ausführlich diesem so wichtigen Programm widmen. Sie werden das
CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1
CMS.R. Bedienungsanleitung Modul Cron Revision 1 Copyright 10.09.2009 www.sruttloff.de CMS.R. - 1 - WOZU CRON...3 VERWENDUNG...3 EINSTELLUNGEN...5 TASK ERSTELLEN / BEARBEITEN...6 RECHTE...7 EREIGNISSE...7
Feiertage in Marvin hinterlegen
von 6 Goecom GmbH & Co KG Marvin How to's Feiertage in Marvin hinterlegen Feiertage spielen in Marvin an einer Reihe von Stellen eine nicht unerhebliche Rolle. Daher ist es wichtig, zum Einen zu hinterlegen,
Objektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager
Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager Dateiname: ecdl2_03_05_documentation Speicherdatum: 22.11.2004 ECDL 2003 Modul 2 Computermanagement und Dateiverwaltung
Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1
Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen
Programmieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
Javakurs für Fortgeschrittene
Javakurs für Fortgeschrittene Einheit 03: Swing Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Einführung in GUI-Programmierung Motivation Grundlagen von Swing Praxis: UI für
Erstellen eines Wordpress-Blogs
Erstellen eines Wordpress-Blogs Inhalt 1 Einen Wordpress-Blog erstellen... 3 2 Wordpress konfigurieren... 5 2.1 Wordpress-Anmeldung... 5 2.2 Sprache einstellen... 7 2.3 Einen neuen Artikel verfassen...
Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten
Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe
FH-SY Chapter 2.4 - Version 3 - FH-SY.NET - FAQ -
FH-SY Chapter 2.4 - Version 3 - FH-SY.NET - FAQ - Version vom 02.02.2010 Inhaltsverzeichnis 1. KANN ICH BEI EINER EIGENEN LEKTION NACHTRÄGLICH NOCH NEUE LERNINHALTE ( WAS WURDE BEHANDELT? ) EINFÜGEN?...
Erweitertes Kalkulationsfenster
Erweitertes Kalkulationsfenster Inhaltsverzeichnis 1. Bereich "Kalkulation" (Fokussierung: Ctrl-F2)... 3 2. Bereich "Kennzahlen"... 4 3. Bereich "Positionswerte"... 5 4. Bereich "Vorhandene Analysen" /
Anleitung zum GUI Version 2.x
GUI (Graphical User Interface) für PC-DMIS V3.x 4.x Seite 1 von 7 Anleitung zum GUI Version 2.x Einsatzziel des Programms: Über ein grafisches Menü PC-DMIS Messprogramme starten. Empfehlenswert für Anwender
Objektorientierte Softwareentwicklung
Objektorientierte Softwareentwicklung Exkurs GUI-Programmierung mit Java-SWING Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Für Hinweise und konstruktive Kritik
Einführung in GUI-Programmierung. javax.swing
Einführung in GUI-Programmierung javax.swing GUI Graphical User Interface ( Grafische Benutzerschnittstelle ) Anschaulichere und leichtere Möglichkeit zur Dateneingabe und Kontrolle von Programmen Stellt
Lehrer: Einschreibemethoden
Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder
Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.
Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen
iphone- und ipad-praxis: Kalender optimal synchronisieren
42 iphone- und ipad-praxis: Kalender optimal synchronisieren Die Synchronisierung von ios mit anderen Kalendern ist eine elementare Funktion. Die Standard-App bildet eine gute Basis, für eine optimale
Java Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
Kursangebot gesammelt einlesen
Kursangebot gesammelt einlesen Übersicht Datenverwaltung Eine weitere Möglichkeit, Kursinformationen auf der Steirischen Weiterbildungsdatenbank zu veröffentlichen, stellt das Einlesen über eine Excel-Datei
