From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001
From: Sven Eisenhauer
Date: Fri, 10 Nov 2023 15:11:48 +0100
Subject: add new repo
---
.../hjp5/html/k100207.html | 252 +++++++++++++++++++++
1 file changed, 252 insertions(+)
create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100207.html
(limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100207.html')
diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100207.html b/Master/Reference Architectures and Patterns/hjp5/html/k100207.html
new file mode 100644
index 0000000..20ed751
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/hjp5/html/k100207.html
@@ -0,0 +1,252 @@
+
+
+
+Handbuch der Java-Programmierung, 5. Auflage
+
+
+
+
+
+
+
+
+
+
+
+
+32.1 Rahmenprogramm
+
+
+
+
+
+Nachdem in Kapitel 31
+die grundsätzliche Vorgehensweise beim Anlegen eines Dialogs
+besprochen wurde, behandelt dieses Kapitel nun die verschiedenen Dialogelemente.
+Zu jedem Dialogelement werden die Konstruktoren und die verschiedenen
+Methoden zur Steuerung seines Verhaltens vorgestellt. Falls ein Dialogelement
+auch Nachrichten sendet, werden diese erläutert und ihre Anwendung
+demonstriert.
+
+
+Jedes Dialogelement wird in Java durch eine eigene Klasse repräsentiert,
+die dessen Verhalten und Eigenschaften kapselt. Zur Aufnahme eines
+neuen Dialogelements in einen Dialog wird eine neue Instanz der gewünschten
+Klasse angelegt und das resultierende Objekt mit add
+in den Dialog eingefügt. Die Methoden des Dialogelements können
+dann zu einem beliebigen Zeitpunkt aufgerufen werden, um dessen Verhalten
+zu beeinflussen. Alle Dialogelemente sind aus der Klasse Component
+abgeleitet. Sie verfügen über die grundlegenden Eigenschaften
+eines Fensters, besitzen eine Größe und Position und sind
+in der Lage, Nachrichten zu empfangen und zu bearbeiten.
+
+
+
+
+
+
+
+
+Abbildung 32.1: Das Beispielprogramm zum Aufruf der Beispieldialoge
+
+
+Der nach Drücken des »Dialog«-Buttons aufgerufene Dialog
+besitzt ein BorderLayout,
+das in der South-Komponente einen Button
+zum Beenden des Dialogs enthält. In der Center-Komponente wird
+ein Panel
+platziert, das an die Methode customizeLayout
+weitergegeben wird, die darin die Beispielkomponenten platziert. In
+der Basisversion ist diese Methode leer, und der Dialog hat folgendes
+Aussehen:
+
+
+
+
+
+
+Abbildung 32.2: Der noch leere Beispieldialog
+
+
+Die Beispielprogramme können dann dem übergebenen Panel
+innerhalb von customizeLayout
+einen beliebigen Layoutmanager zuordnen und eine beliebige Auswahl
+von Komponenten darauf platzieren. Der Ende-Button bleibt auf jeden
+Fall erhalten und kann zum Beenden des Dialogs verwendet werden:
+
+
+
+
+
+
+
+
+001 /* DialogBeispiel.java */
+002
+003 import java.awt.*;
+004 import java.awt.event.*;
+005
+006 class MyDialog
+007 extends Dialog
+008 implements ActionListener
+009 {
+010 public MyDialog(Frame parent)
+011 {
+012 super(parent,"MyDialog",true);
+013 Point parloc = parent.getLocation();
+014 setBounds(parloc.x + 30, parloc.y + 30,400,300);
+015 setBackground(Color.lightGray);
+016 setLayout(new BorderLayout());
+017 //Panel
+018 Panel panel = new Panel();
+019 customizeLayout(panel);
+020 add(panel, BorderLayout.CENTER);
+021 //Ende-Button
+022 Button button = new Button("Ende");
+023 button.addActionListener(this);
+024 add(button, BorderLayout.SOUTH);
+025 //Window-Listener
+026 addWindowListener(
+027 new WindowAdapter() {
+028 public void windowClosing(WindowEvent event)
+029 {
+030 endDialog();
+031 }
+032 }
+033 );
+034 pack();
+035 }
+036
+037 private void customizeLayout(Panel panel)
+038 {
+039 //Beispielcode hier
+040 }
+041
+042 public void actionPerformed(ActionEvent event)
+043 {
+044 if (event.getActionCommand().equals("Ende")) {
+045 endDialog();
+046 }
+047 }
+048
+049 void endDialog()
+050 {
+051 setVisible(false);
+052 dispose();
+053 ((Window)getParent()).toFront();
+054 getParent().requestFocus();
+055 }
+056 }
+057
+058 public class DialogBeispiel
+059 extends Frame
+060 implements ActionListener
+061 {
+062 public static void main(String[] args)
+063 {
+064 DialogBeispiel wnd = new DialogBeispiel();
+065 wnd.setSize(300,200);
+066 wnd.setVisible(true);
+067 }
+068
+069 public DialogBeispiel()
+070 {
+071 super("Beispiel Dialogelemente");
+072 setBackground(Color.lightGray);
+073 setLayout(new FlowLayout());
+074 //Dialog-Button
+075 Button button = new Button("Dialog");
+076 button.addActionListener(this);
+077 add(button);
+078 //Ende-Button
+079 button = new Button("Ende");
+080 button.addActionListener(this);
+081 add(button);
+082 //Window-Listener
+083 addWindowListener(new WindowClosingAdapter(true));
+084 }
+085
+086 public void actionPerformed(ActionEvent event)
+087 {
+088 String cmd = event.getActionCommand();
+089 if (cmd.equals("Dialog")) {
+090 MyDialog dlg = new MyDialog(this);
+091 dlg.setVisible(true);
+092 } else if (cmd.equals("Ende")) {
+093 setVisible(false);
+094 dispose();
+095 System.exit(0);
+096 }
+097 }
+098 }
+
+ |
+
+DialogBeispiel.java |
+
+
+
+Listing 32.1: Rahmenprogramm für Dialogelemente
+
+
+
+
+
--
cgit v1.2.3