Hi,
der unten stehende Code erzeugt ein Fenster, mit dem Inhalt: Zum Beenden bitte ESC drücken...
In der Klasse Listing2805 werden Instanzen der Klassen MainFrameCommand(Event Handling) und MainFrameGUI(Grafische Ausgabe) erzeugt. Aber wo wird dem Programm gesagt das es die Methode paint der Klasse MainFrameGUI aufrufen soll?
der unten stehende Code erzeugt ein Fenster, mit dem Inhalt: Zum Beenden bitte ESC drücken...
In der Klasse Listing2805 werden Instanzen der Klassen MainFrameCommand(Event Handling) und MainFrameGUI(Grafische Ausgabe) erzeugt. Aber wo wird dem Programm gesagt das es die Methode paint der Klasse MainFrameGUI aufrufen soll?
Code:
import java.awt.*;
import java.awt.event.*;
class MainFrameGUI extends Frame
{
//public MainFrameGUI(KeyListener cmd)
public MainFrameGUI(KeyAdapter cmd)
{
super("Nachrichtentransfer");
//Instanz der Klasse WindowClosingAdapter erzeugen um den X Button zu belegen
addWindowListener(new WindowClosingAdapter(true));
//setBackground(Color.lightGray);
setSize(300,200);
setLocation(200,100);
setVisible(true);
addKeyListener(cmd);
}
public void paint(Graphics g)
{
g.setFont(new Font("Serif",Font.PLAIN,18));
g.drawString("Zum Beenden bitte ESC drücken...",10,50);
}
}
import java.awt.*;
import java.awt.event.*;
//class MainFrameCommand implements KeyListener
class MainFrameCommand extends KeyAdapter
{
public void keyPressed(KeyEvent event)
{
Frame source = (Frame)event.getSource();
if (event.getKeyCode() == KeyEvent.VK_ESCAPE)
{
source.setVisible(false);
source.dispose();
System.exit(0);
}
}
}
import java.awt.*;
import java.awt.event.*;
public class Listing2805
{
public static void main(String[] args)
{
MainFrameCommand cmd = new MainFrameCommand();
MainFrameGUI gui = new MainFrameGUI(cmd);
}
}