Java. Prof. Dr. Stefan Enderle NTA Isny

Ähnliche Dokumente
EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ

Java für Computerlinguisten

GUI Programmierung mit JAVA Swing

...erinnern Sie sich? oopjs4b / kwhbkd4r

Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

NTB Druckdatum:

Programmieren II. Menü-Klassen in Java. Menüs. Menüs. Action. Dr. Klaus Höppner. GridBagLayout. Hochschule Darmstadt SS 2008

Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.

Vorlosung: Swing: Erstellen eines JFrames mit GridBagLayout

Swing Lernen am Code Teil 1

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr Seite 1 von 5. Teil 2: Aufgaben

Institut für Informatik

16 Zeichnen in Swing-Komponenten , Prof. Dr. D. Ratz

GUI Programmierung mit javax.swing

FENSTER ADNAN TUNAY 1

GUI Programmierung in Java

Grafische Benutzeroberflächen

Universität Karlsruhe (TH)

Anwendungen mit GUI. INE2, Mittwoch / TH561 M. Thaler, Office TG208.

Grundlagen der Programmierung APPLETS

04 - Actions. Actions

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();

Kapitel X - Zeichnen mit Java2D

Grafische Benutzeroberflächen

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

7. Farbe. Thomas Worsch. Wintersemester 2017/2018

Swing :Komponenten I (Teil 2)

Funktionale und Objekt-Orientierte Programmierkonzepte

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1

Lösungen. 1. Aufgabe. // ActionExample.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.

GUIs in Java und ihre Programmierung

Mensch-Maschine-Interaktion

11. GUI-Programmierung mit SWING Überblick

JAVA 3. Arbeitsblätter für die Lehrveranstaltung OOP. III. Applets und JavaScript. Das Applet-Tag:

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur

Einstieg in die Informatik mit Java

Sommersemester Implementierung III: GUI und Verhalten (Teil 2)

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in Swing. Graphical User Interface

7. Architektur interaktiver Systeme

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing

Auszug aus der Klassenstruktur

Hauptklausur: PRGII MD

Drucken soll nur das Panel, nicht der ganze Rahmen gedruckt werden.

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Techniken der Projektentwicklung

Images. Kommen auf zweierlei Weise zur Anwendung. Darstellung von Pixelbildern(.jpg,.gif,.png) Bilden die Grundlage für Offscreendrawing

Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen (engl.: "graphical user interface", GUI) in Java

Kapitel 7: Ereignis-basierte Kommunikation

Swing : Komponeneten I (Teil 1) Was ist Swing?

Objektorientierte Software-Entwicklung

Graphische Benutzungsoberflächen

GUI-Programmierung. Teil I. Unterlagen zum Modul OOP mit Java V by MOU2/BFH-TI. Berner Fachhochschule Technik und Informatik

Swing oder AWT? Was ist das: Swing bzw. AWT. Haupterkennungsmerkmal von Swing Source-Code:

KAPITEL 4: Bildbearbeitung Kopiervorlagen und Arbeitsblätter

J.1. J.1 GUI-Programmierung in in Java Prof. Dr. Rainer Manthey Informatik II 1

import java.awt.*; import java.awt.event.*; import javax.swing.*;

Java Lab 2006/12/13 Client

Programmierkurs. 11. Vorlesung. Sven Mallach. 13. Januar Institut für Informatik - Lehrstuhl Prof. Dr. M. Jünger 1/ 60

Konzepte objektorientierter Programmierung

Plotten von Kreisen ( nach Jack Bresenham ) (C) Ac bis

DHBW Karlsruhe, Angewandte Informatik Programmieren in JAVA W. Geiger, T. Schlachter, C. Schmitt, W.

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur

Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum.

Rückblick. Geltungsbereich von lokalen Variablen? Wo leben lokale Variablen? Geltungsbereich von Instanzvariablen? Wo leben Instanzvariablen?

Objektorientierte Programmierung Studiengang Medieninformatik

Wiederholung: Objektorientierte Oberflächen-Programmierung mit Java und Swing

Dr. Monika Meiler. Inhalt

Aufgabe Malen zum Software-Engineering. Karl Friedrich Gebhardt

(C) Sortieren und Suchen mit Java.-AWT Seite 1

Grafik-Programmierung

Aufbau einer typischen Java-Datei

Klausur: Java (Liste P)

Einstieg in die Informatik mit Java

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II

Einführung in die objektorientierte Programmierung mit Java - SS 2014

Einstieg in die Informatik mit Java

Ist eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt

JAVA2D OKTOBER package at.ac.wuwien.examples.swingdemo; 3 import javax.swing.*; 5 public class SimpleGUI extends JFrame {

Projektarbeit Java. 4-Gewinnt. Berner Fachhochschule. 2004, Labor für Technische Informatik

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

Programmieren II. Die Klasse JList. Vorlesung 5. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester JList.

Arbeitsblatt 5 EAD II NetBeans

Observer-Beispiel. Observer-Beispiel

Grafische Benutzeroberflächen mit Swing

Programmieren II. Zeichnen in Swing-Komponenten. Heusch 18 Ratz Institut für Angewandte Informatik

Kap. 36. SWING: Menüs. und weitere SWING-Container. Seán Dempsey

jcontentpane.setlayout(new BorderLayout()); // unten JPanel unten = new JPanel(); unten.setlayout( new BoxLayout(unten, BoxLayout.

Medientechnik. Übung 2 Java Swing

DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung

GUI-Programmierung in Java

Layout Manager. Astrid Beck FHT Esslingen

Ansonsten VIEL SPAß! Nicholas Ohs (GK 11 IF 2)

Swing Grundlagen. Andre Eichmann

Probeklausur Informatik 2 Sommersemester 2013

Transkript:

Java Prof. Dr. Stefan Enderle NTA Isny

7. Oberflächenprogrammierung

JFrame Die Klasse JFrame bietet eine Basis für Programme mit graphischer Benutzeroberfläche. Das folgende Programm legt ein Objekt der Klasse JFrame an und zeigt dieses mittels setvisible(true) an. public class Frame JFrame Rahmen = new JFrame(); Rahmen.setVisible(true);

JFrame Größe festlegen Die Größe eines JFrame Objektes kann mit setsize(x- Size, y-size) verändert werden. Das folgende Programm zeigt einen JFrame mit 300x200 Pixeln Größe public class Frame JFrame Rahmen = new JFrame(); Rahmen.setSize(300,200); Rahmen.setVisible(true);

JFrame Größe fixieren Die Größe eines JFrame Objektes kann mit setresizable(false) fixiert werden. Das Fenster ist dann nicht vergrößer/kleinerbar. Default ist setresizable(true). Das folgende Programm zeigt einen JFrame mit fester Größe von 300x200 Pixeln public class Frame JFrame Rahmen = new JFrame(); Rahmen.setSize(300,200); Rahmen.setResizable(false); Rahmen.setVisible(true);

JFrame Position Die Position eines JFrame Objektes kann mit setlocation(x-pos, y-pos) verändert werden. Die Position (0,0) ist hierbei links oben. Das folgende Programm zeigt einen JFrame an der Stelle 500,500. public class Frame JFrame Rahmen = new JFrame(); Rahmen.setSize(300,200); Rahmen.setLocation(500,500); Rahmen.setVisible(true);

JFrame Titel Der Titel eines JFrame Objektes kann mit settitle(titel) verändert werden. Der Titel wird als Fenstertitel angezeigt. Das folgende Programm zeigt einen JFrame mit Titel. public class Frame JFrame Rahmen = new JFrame(); Rahmen.setSize(300,200); Rahmen.setLocation(500,500); Rahmen.setTitle("Mein Titel"); Rahmen.setVisible(true);

JFrame Objekte einfügen Ein JFrame Objekt enthält einen "Container", in den weitere Objekte eingefügt werden können. Das folgende Programm zeigt, wie das Container-Objekt geholt und ein neues JButton Objekt eingefügt wird. public class Frame JFrame Rahmen = new JFrame(); Rahmen.setSize(300,200); JButton button = new JButton("Drück!"); Container Inhalt = Rahmen.getContentPane(); Inhalt.add(button); Rahmen.setVisible(true);

JPanel als Leinwand Die Klasse JPanel kann als Leinwand benutzt werden, auf die beliebige graphische Objekte (Linien, Kreise, Rechtecke) gemalt werden können. Ein Objekt der Klasse JPanel muss wie oben in ein JFrame Objekt eingefügt werden. Das folgende Programm zeigt, wie ein JPanel Objekt eingefügt wird und setbackground(color) aufgerufen wird, um die Hintergrundfarbe zu ändern. public class Frame JFrame Rahmen = new JFrame(); Rahmen.setSize(300,200); Container Inhalt = Rahmen.getContentPane(); JPanel panel = new JPanel(); panel.setbackground(color.blue); Inhalt.add(panel); Rahmen.setVisible(true);

Color Farben Die Klasse Color stellen folgende Standard-Farben zur Verfügung: black (schwarz) green (grün) red (rot) blue (blau) lightgray (hellgrau) white (weiß) cyan (cyan) magenta (magenta) yellow (gelb) darkgray (dunkelgrau) orange (orange) gray (grau) pink (pink) Die Standard-Farben werden folgendermaßen verwendet (Beispiel): Color mycolor1 = Color.blue; Eigene Farben können als RGB-Wert definiert werden: Color mycolor2 = new Color(17, 123, 240);

JPanel malen Um auf einem Panel zu malen, muss eine eigene Klasse definiert werden, die von JPanel ableitet: class MeinPanel extends JPanel... Diese Klasse muss dann die Methode paintcomponent(graphics g) zur Verfügung stellen. Diese wird automatisch immer dann aufgerufen, wenn das Fenster neu gemalt werden soll. Das folgende Programm zeigt, wie eine eigene Klasse MeinPanel von JPanel Objekt abgeleitet wird und die Methode paintcomponent überschrieben wird, um eigene Graphik-Objekte darzustellen.

JPanel malen class MeinPanel extends JPanel public void paintcomponent(graphics g) super.paintcomponent(g); setbackground(color.blue); g.setcolor(new Color (255,0,255)); g.fillrect(70,50,80,80); g.setcolor(color.yellow); g.drawline(0,0,100,100); g.setcolor(color.green); g.drawoval(50,50,30,30); public class Frame JFrame Rahmen = new JFrame(); Rahmen.setSize(300,200); Container Inhalt = Rahmen.getContentPane(); MeinPanel a = new MeinPanel(); Inhalt.add(a); Rahmen.setVisible(true);

Image Bilder anzeigen class MeinPanel extends JPanel public void paintcomponent(graphics g) super.paintcomponent(g); Image img = Toolkit.getDefaultToolkit(). getimage("test.gif"); g.drawimage(img,10,10,this); public class Test JFrame rahmen = new JFrame(); rahmen.setsize(500,400); MeinPanel panel = new MeinPanel(); rahmen.add(panel); rahmen.setvisible(true);

Menü JMenuBar: Leiste mit Hauptmenü JMenu: Hauptmenü-Einträge (Datei, Bearbeiten,...) public class Test JFrame rahmen = new JFrame(); rahmen.setsize(500,400); rahmen.setdefaultcloseoperation(jframe.exit_on_close); JMenuBar menubar = new JMenuBar(); rahmen.setjmenubar(menubar); JMenu datei = new JMenu("Datei"); JMenu bearbeiten = new JMenu("Bearbeiten"); menubar.add(datei); menubar.add(bearbeiten); JButton button = new JButton("Button"); rahmen.add(button); rahmen.setvisible(true);

Menü JMenuItem: Wie Button, aber im Menü eingesetzt public class Test JFrame rahmen = new JFrame(); rahmen.setsize(500,400); rahmen.setdefaultcloseoperation(jframe.exit_on_close); JMenuBar menubar = new JMenuBar(); rahmen.setjmenubar(menubar); JMenu datei = new JMenu("Datei"); JMenu bearbeiten = new JMenu("Bearbeiten"); menubar.add(datei); menubar.add(bearbeiten); datei.add(new JMenuItem("Neu")); datei.add(new JMenuItem("Öffnen")); datei.addseparator(); datei.add(new JMenuItem("Ende")); JButton button = new JButton("Button"); rahmen.add(button); rahmen.setvisible(true);

Menü AbstractAction: import java.awt.event.*; import java.util.*; public class Test final JFrame rahmen = new JFrame(); rahmen.setsize(500,400); rahmen.setdefaultcloseoperation(jframe.exit_on_close); JMenuBar menubar = new JMenuBar(); rahmen.setjmenubar(menubar); JMenu datei = new JMenu("Datei"); JMenu bearbeiten = new JMenu("Bearbeiten"); menubar.add(datei); menubar.add(bearbeiten); datei.add(new JMenuItem("Neu")); datei.add(new JMenuItem("Öffnen")); datei.addseparator(); datei.add(new AbstractAction("Titel ändern") public void actionperformed(actionevent e) rahmen.settitle("neuneuneu"); ); JButton button = new JButton("Button"); rahmen.add(button); rahmen.setvisible(true);

GridLayout Alle Grid-Zellen gleich groß! public class Test JFrame rahmen = new JFrame(); rahmen.setsize(500,400); rahmen.setdefaultcloseoperation(jframe.exit_on_close); rahmen.setlayout(new GridLayout(4, 1)); JLabel label = new JLabel("Ein Label-Text"); rahmen.add(label); JButton button = new JButton("Button"); rahmen.add(button); JCheckBox checkbox = new JCheckBox("Checkbox"); rahmen.add(checkbox); JSlider slider = new JSlider(0,100); rahmen.add(slider); rahmen.setvisible(true);

GridLayout Anstatt 4 Zeilen jetzt 4 Spalten! public class Test JFrame rahmen = new JFrame(); rahmen.setsize(500,400); rahmen.setdefaultcloseoperation(jframe.exit_on_close); rahmen.setlayout(new GridLayout(1, 4)); JLabel label = new JLabel("Ein Label-Text"); rahmen.add(label); JButton button = new JButton("Button"); rahmen.add(button); JCheckBox checkbox = new JCheckBox("Checkbox"); rahmen.add(checkbox); JSlider slider = new JSlider(0,100); rahmen.add(slider); rahmen.setvisible(true);

GridLayout Oder 2 Spalten a 2 Zeilen... public class Test JFrame rahmen = new JFrame(); rahmen.setsize(500,400); rahmen.setdefaultcloseoperation(jframe.exit_on_close); rahmen.setlayout(new GridLayout(2, 2)); JLabel label = new JLabel("Ein Label-Text"); rahmen.add(label); JButton button = new JButton("Button"); rahmen.add(button); JCheckBox checkbox = new JCheckBox("Checkbox"); rahmen.add(checkbox); JSlider slider = new JSlider(0,100); rahmen.add(slider); rahmen.setvisible(true);