Universität Paderborn - Home Universität Paderborn
Die Universität der Informationsgesellschaft

Grundlagen der Programmierung 2 SS 2005 - Datei Windows.java


import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Windows extends JFrame
{

   JButton newWindow;
   JTextField message;
   int counter = 0;

   // Die Listener-Klasse zum Schliessen der neuen Fenster:
   class WindowCloser extends WindowAdapter
   {
      public void windowClosing(WindowEvent e)
      {
         JFrame source = (JFrame) e.getSource();
         source.dispose(); // Fenster wird geschlossen
         message.setText(source.getTitle() + " geschlossen.");
      }
   }

   // Der Listener zum Schliessen der neuen Fenster:
   WindowCloser closer = new WindowCloser();

   // Konstruktor:
   public Windows()
   {
      super("Many Windows");
      Container content = getContentPane();
      content.setLayout(new BorderLayout());

      newWindow = new JButton("Neues Fenster");
      content.add(newWindow, BorderLayout.SOUTH);

      // Listener zum Erzeugen neuer Fenster:
      newWindow.addActionListener(new ActionListener()
      {
         public void actionPerformed(ActionEvent e)
         {
            JFrame f = new JFrame("Fenster " + counter++);
            f.addWindowListener(closer);
            f.setSize(200, 200);
            f.setVisible(true);
         }
      });

      message = new JTextField(40);
      message.setEditable(false);
      content.add(message, BorderLayout.NORTH);
      setSize(400, 80);
      setLocation(200, 200);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
   }

   public static void main(String[] args)
   {
      JFrame f = new Windows();
   }
}

Generiert mit Camelot | Probleme mit Camelot? | Geändert am: 09.05.2005