/******************************************************************/ /* Prof. Dr. Carsten Vogt */ /* FH Koeln, Fak. 07 / Nachrichtentechnik */ /* http://www.nt.fh-koeln.de/vogt */ /* */ /* Das Programm demonstriert die Verwendung eines Dialog-Objekts. */ /******************************************************************/ import java.awt.*; import java.awt.event.*; import javax.swing.*; // Klasse für einen "Eins-Zwei-Drei-Dialog" class EinsZweiDreiDialog extends JDialog { // Konstruktor: EinsZweiDreiDialog(final JTextField testAusgabeFeld) { // Aufruf des Konstruktors der Oberklasse: super(); // Layout des Dialogfensters setzen: getContentPane().setLayout(new GridLayout(1,4)); // Label hinzufuegen: JLabel text = new JLabel("Auswahl: "); text.setFont(new Font("Arial",Font.BOLD,24)); text.setForeground(Color.black); getContentPane().add(text); // Drei Auswahlbuttons erzeugen und zum Dialogfenster hinzufuegen: JButton einsButton, zweiButton, dreiButton; einsButton= new JButton("Eins"); einsButton.setFont(new Font("Arial",Font.BOLD,24)); einsButton.setForeground(Color.black); zweiButton= new JButton("Zwei"); zweiButton.setFont(new Font("Arial",Font.BOLD,24)); zweiButton.setForeground(Color.black); dreiButton= new JButton("Drei"); dreiButton.setFont(new Font("Arial",Font.BOLD,24)); dreiButton.setForeground(Color.black); getContentPane().add(einsButton); getContentPane().add(zweiButton); getContentPane().add(dreiButton); // Listener für die drei Buttons definieren und anbinden: ActionListener butLis = new ActionListener() { public void actionPerformed(ActionEvent e) { // Text des ausgewählten Buttons ausgeben: testAusgabeFeld.setText("--- "+e.getActionCommand()+" ---"); // Dialogfenster löschen: dispose(); } }; einsButton.addActionListener(butLis); zweiButton.addActionListener(butLis); dreiButton.addActionListener(butLis); // Dialogfenster sichtbar machen pack(); setVisible(true); setLocation(100,200); } } // Hauptprogramm mit Hauptframe: public class Dialog { public static void main(String args[]) { // Frame erzeugen JFrame meinFrame = new JFrame("Dialog-Test"); meinFrame.getContentPane().setLayout(new GridLayout(1,1)); meinFrame.setSize(400,300); meinFrame.setLocation(100,300); meinFrame.getContentPane().setLayout(new GridLayout(3,1)); // Textfeld für die Ausgabe hinzufuegen: final JTextField meinTextfeld = new JTextField(20); meinTextfeld.setFont(new Font("Arial",Font.BOLD,24)); meinTextfeld.setForeground(Color.red); meinFrame.getContentPane().add(meinTextfeld); // Steuerungsbuttons hinzufuegen: JButton quitButton = new JButton("Quit"), dialogButton = new JButton("Dialog öffnen"); quitButton.setFont(new Font("Arial",Font.BOLD,24)); dialogButton.setFont(new Font("Arial",Font.BOLD,24)); meinFrame.getContentPane().add(dialogButton); meinFrame.getContentPane().add(quitButton); // Actionlistener an die Buttons binden: ActionListener butLis = new ActionListener() { public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("Quit")) System.exit(0); if (e.getActionCommand().equals("Dialog öffnen")) new EinsZweiDreiDialog(meinTextfeld); } }; quitButton.addActionListener(butLis); dialogButton.addActionListener(butLis); // Frame sichtbar machen: meinFrame.setVisible(true); } }