close

Anmelden

Neues Passwort anfordern?

Anmeldung mit OpenID

GUI - Institut für Informatik Uni Kiel

EinbettenHerunterladen
Komponenten - Top Level Containers
Softwarepraktikum SS 2008
GUI Programmierung mit Swing
Oliver Fleischmann
21. Mai 2008
Swing - Was ist das?
API: Application Programming Interface
GUI: Graphical User Interface
Swing: Teil der Java Foundation Classes (JFC)
JFC: eine API für die GUI Programmierung in Java. Enthält
Swing, AWT und Java 2D
JFrame
JDialog
Komponenten - Controls
JButton
JCheckBox
JComboBox
JList
Stellt Komponenten bereit zur Erzeugung von Windows,
Buttons, Menus
Stellt Ereignis-gesteurte (event driven) Kommunikation
zwischen Benutzer und GUI bereit (Verarbeitung von Mausund Tastatureingaben)
Komponenten - General Purpose Containers
Anordnung von Komponenten - Layouts II
JPanel
JScrollPane
GridBagLayout
GridLayout
JSplitPane
JTabbedPane
GroupLayout
SpringLayout
Anordnung von Komponenten - Layouts I
Swing Klassen - Hierarchie
Klassen der Komponenten sind hierarchisch organisiert,
Vererbung wird intensiv genutzt
BorderLayout
BoxLayout
CardLayout
FlowLayout
Oberklasse aller Komponenten: JComponent
Durch Vererbung unterstützt jede Komponente auch die
Methoden seiner Superklassen
Swing Klassen - Hierarchie
Event Handling
Event Handling: Verarbeitung von Ereignissen
Ereignisse: Maus- und Tastatureingaben
Was soll z.B beim Klicken eines Buttons passieren?
Swing Thread verarbeitet Events des Systems und schickt sie
an die Applikation weiter
Java stellt Schnittstellen für EventListener bereit, um Events
im Programm abzufangen
Beispiel - Hello World
import
javax . swing . ∗ ;
/∗ FrameDemo . j a v a r e q u i r e s no o t h e r f i l e s . ∗/
p u b l i c c l a s s HelloWorld {
p r i v a t e s t a t i c v o i d createAndShowGUI ( ) {
JFrame f r a m e = new JFrame ( " H e l l o ␣ World " ) ;
f r a m e . s e t D e f a u l t C l o s e O p e r a t i o n ( JFrame . EXIT_ON_CLOSE ) ;
frame . s e t S i z e (200 , 1 0 0 ) ;
frame . pack ( ) ;
frame . s e t V i s i b l e ( t r u e ) ;
}
}
Event Handling - EventListener
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
j a v a x . s w i n g . S w i n g U t i l i t i e s . i n v o k e L a t e r ( new R u n n a b l e ( ) {
p u b l i c v o i d run ( ) {
createAndShowGUI ( ) ;
}
});
}
ActionListener: wird angesprochen durch beliebige Aktionen
(Maus, Tastatur, . . . )
MouseListener: reagiert entsprechend auf Mauseingaben
KeyListener: reagiert auf Tastatur Eingaben
WindowListener: reagiert auf Aktionen, die mit einem
Fenster vollzogen werden wie z.B. vergrößern, maximieren,
fokussieren, . . .
ChangeListener: reagiert auf Änderungen z.B. in einem
Eingabefeld
Event Handling - Bespiel ActionListener
Custom Painting - Beispiel
class
MyPanel e x t e n d s
JPanel {
p u b l i c MyPanel ( ) {
}
p u b l i c c l a s s HelloWorld . . . implements A c t i o n L i s t e n e r {
...
// w h e r e i n i t i a l i z a t i o n o c c u r s :
button . addActionListener ( t h i s ) ;
...
p u b l i c void actionPerformed ( ActionEvent e ) {
// do s o m e t h i n g
}
}
p u b l i c Dimension g e t P r e f e r r e d S i z e ( ) {
r e t u r n new D i m e n s i o n ( 2 5 0 , 2 0 0 ) ;
}
p r o t e c t e d v o i d paintComponent ( G r a p h i c s g ) {
s u p e r . paintComponent ( g ) ;
g . s e t C o l o r ( C o l o r . RED ) ;
g . f i l l R e c t ( s q u a r e X , s q u a r e Y , squareW , s q u a r e H ) ;
}
}
Custom Painting - Eigene Komponenten darstellen
Quellen
Was wird benötigt:
java.awt.Graphics Package
Ein Grundkomponente, die wir selbst darstellen bzw. auf die
wir „malen“ wollen, z.B JPanel
Jede Komponente besitzt paintComponent(Graphics g)
Methode
Java ermöglicht uns das Überladen dieser Methode durch eine
eigene
Klasse Graphics stellt Methoden für 2D Primitiven wie
drawRect, drawLine, drawOval, drawImage, . . . zur
Verfügung
http://java.sun.com/docs/books/tutorial/uiswing/
index.html
Document
Kategorie
Internet
Seitenansichten
4
Dateigröße
366 KB
Tags
1/--Seiten
melden