import java.awt.*;import java.awt.event.*;public class Fehlermeldung extends Dialog implements ActionListener { Button b_ok = new Button (" OK "); Label l_meldung1 = new Label (); Label l_meldung2 = new Label (); Panel pan_meldung = new Panel (); static Dimension monitorGroesse = new Dimension(); static Dimension fensterGroesse = new Dimension(); int fensterBreite; int fensterHoehe; int textLaenge; int textHoehe; Image symAchtung; Canvas can_Symbol = new Canvas(); public Fehlermeldung (Frame parent, String meldung, int art) { super(parent, "Meldung", true); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { fensterSchliessen(); } }); this.setFont(new Font("SansSerif", Font.PLAIN, 16)); b_ok.addActionListener(this); pan_meldung.setLayout(null); l_meldung1.setText(meldung); // Text-Länge ermitteln, um die Breite des Fensters anzupassen textLaenge = getFontMetrics(getFont()).stringWidth(meldung); textHoehe = getFontMetrics(getFont()).getHeight(); if (textLaenge < 260) fensterBreite = 300; else fensterBreite = textLaenge + 40; fensterHoehe = 200; l_meldung1.setBounds((fensterBreite - textLaenge)/2, 50, textLaenge+5, textHoehe+5); l_meldung1.setBackground(Color.lightGray); pan_meldung.add(l_meldung1); pan_meldung.add(b_ok); b_ok.setBounds((fensterBreite-100)/2,130,100,30); symAchtung = Toolkit.getDefaultToolkit().getImage( "Achtung.gif" ); if (symAchtung != null) repaint(); can_Symbol.setBounds(10,50, 60,60); can_Symbol.setBackground(Color.yellow); pan_meldung.add(can_Symbol); add(pan_meldung); setSize(fensterBreite, fensterHoehe); // Fenster genau in der Mitte des Monitors ausrichten monitorGroesse = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); fensterGroesse = this.getSize(); int xPos = (monitorGroesse.width - fensterGroesse.width) / 2; int yPos = (monitorGroesse.height - fensterGroesse.height) / 2; this.setLocation(xPos, yPos); this.setResizable(false); setVisible(true); } public void paint( Graphics g ){ if ( symAchtung != null ){ g.drawImage( symAchtung, 0, 0, 60,60, can_Symbol ); System.out.println("Das GIF sollte jetzt zu sehen sein !"); } } public void actionPerformed(ActionEvent ae) { Object eventTarget = ae.getSource(); if (eventTarget == b_ok) { fensterSchliessen(); } } private void fensterSchliessen() { setVisible(false); dispose(); }}