AWT
Swing
Grafische Elemente und ihre Methoden
Beispiel
Abstract Windwing Toolkit (AWT)
seit JDK 1.0 dabei
benutzt grafische Objekte des jeweiligen Betriebs- oder Fenstersystems
AWT und Swing zusammen bilden die Java Foundation Classes (JFC)
ab JDK 1.2, modernere Architektur
Swing verwendet eigene grafische Objekte, d.h. Swing Anwendungen können auf allen Betreibs- bzw. Fenstersystemen gleich aussehen.
auswechselbares Look and Feel, sogenannte Themes
viele Hilfen für Behinderte: Accessibility API
Tooltips, Tastenkürzel, Tastensteuerung, Touchpanel, etc.
in Anlehnung an die Netscape Internet Foundation Classes entwickelt
import java.awt.event.WindowListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JTextArea; public class HelloWorldSwing { public static void main(String[] args) throws InterruptedException { JFrame.setDefaultLookAndFeelDecorated(true); JFrame main = new JFrame("HalloWeltJFrame"); JComponent innen; //innen = new JLabel("Hallo Welt !"); //innen = new JTextArea("Hallo Welt !"); innen = new JTextField("Hallo Welt !"); main.setContentPane( innen ); main.setLocation(200,100); main.pack(); main.setSize(300,200); main.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent event) { System.exit(0); // not do this in production } } ); main.setVisible(true); } }
grafische Bestandteile: Widgets, Controls, Komponenten
Buttons / Knöpfe, Scrollbars / Scrollbalken, Menues, Label / Beschriftungen, Fenster, Dialogfenster
Container enthalten andere Komponenten, atomare Komponenten enthalten keine weiteren Komponenten
Top-level Container können frei im Fenstersystem erscheinen: JWindow, JFrame, JDialog, JApplet, JInternalFrame
Menues: JComponent, JMenuBar, JPopupMenu, JSeparator, AbstractButton, JMenuItem, JMenu, JCheckBoxMenuItem, JRadioButtonMenuItem
Panels: JPanel, JOptionPane, JLabel, JScrollBar, JScrollPane, JToolBar, JSplitPlane, JToolTip, JTextField, JTextArea, JEditorPane, JPasswordField, JButton, JCheckBox, JRadioButton
Layout Manager: BorderLayout, GridLayout, GridBagLayout, FlowLayout, BoxLayout, ScrollPaneLayout
Event Listener: ActionListener, KeyListener, MouseListener, WindowListener, ChangeListener
Ränder: TitledBorder, LineBorder, EtchedBorder
Erzeugen einer Komponete
JPanel knopf = new JButton("Text");
Setzen von Eigenschaften
knopf.setForeground( color );
Hinzufügen von Beobachtern / Listeners
knopf.addActionListener( klickAction );
siehe Teil II von GUI.
Einstellen des Layouts bei umfassenden Panels
bereich.setLayout( new BorderLayout() );
Hinzufügen von inneren Panels oder zu umfassenden Panels
bereich.add( knopf, position );
Grösse der Komponente:
getHeight(), getWidth(),
setSize(int,int), setSize(Dimension),
getMaximumSize(), getMinimumSize(), getPreferredSize(),
setMaximumSize(Dimension), setMinimumSize(Dimension),
setPreferredSize(Dimension),
reshape(int,int,int,int)
Position der Komponente:
getX(), getY(),
setLocation(int,int)
Aussehen der Komponente:
setBackground(Color), setForeground(Color),
setFont(Font), setCursor(Cursor),
setBorder(Border)
Sichtbarkeit der Komponente:
setVisible(boolean), setOpaque(boolean),
setEnabled(boolean)
Hilfen der Komponente:
setToolTipText(String)
Inhalte von Komponenten:
add(Component), add(Component,Object),
remove(Component), removeAll(),
setLayout(LayoutManager), validate()
Fenster:
pack(), dispose(),
getOwner()
© Universität Mannheim, Rechenzentrum, 2004-2005.
Heinz KredelLast modified: Sun Dec 18 16:58:17 CET 2005