[an error occurred while processing this directive]


Rheinland-Pfalz;  Informatik                                 

28.3.2009; letzte Aktualisierung:19.6.2014  ; Claus Schmitt

Zurück zur Startseite Informatik / Rheinland-Pfalz Startseite Informatik-Rheinland-Pfalz

 zurück zur Java Startseite

                                                     


Applets unter Java mit Hilfe eines Plugins für die GUI

Applet mit grafischer Oberfläche
Wir zeigen gleich am Anfang ein Applet in Aktion :
(Umrechnung von DM in Euro; DM-Betrag einfügen und Knopf drücken)

 

	Jetzt sollte sich ein Applet melden

Es empfiehlt sich, getrennte Klassen für die GUI-Oberfläche und die eigentliche Problemlösung zu editieren:


	
public class Devise {   //Umrechnung

	private double dm, euro;
	final double factor = 1.95583;
	public double getDm() {
		return dm;
	}
	public double getEuro() {
		return euro;
	}
	public void setDm(double dm) {
		this.dm = dm;
	}
	public void setEuro(double euro) {
		this.euro = euro;
	}
	public double dmToEuro(double dm) {
		this.euro = dm / factor;
		return euro;
	}
	public double euroToDm(double euro) {
		this.dm = euro * factor;
		return dm;
	}
}
	

Für die GUI kommt hier wieder das Plugin Jigloo zum Einsatz; der über die schon bekannte IDE automatisch generierte Quelltext ist blau markiert; nur der Quelltext in schwarzer Farbe wurde "von Hand" zugefügt.

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
/**
 * This code was edited or generated using CloudGarden's Jigloo
 * 
 */
public class Gui extends javax.swing.JApplet {
	private JTextPane DM_Fenster;
	private JLabel DM_Label;
	private JLabel Header;
	private JButton DM_Euro_Button;
	private JLabel Euro_label;
	private JTextPane Euro_Fenster;
	Devise d = new Devise();
	/**
	 * Auto-generated main method to display this JApplet inside a new JFrame.
	 */
	public static void main(String[] args) {//Main Methode
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {     // Run
				JFrame frame = new JFrame();
				Gui inst = new Gui();
				frame.getContentPane().add(inst);
				((JComponent) frame.getContentPane()).setPreferredSize(inst
						.getSize());
				frame.pack();
				frame.setVisible(true);
			}
		});
	}
	public Gui() {           //Konstruktor
		super();
		initGUI();       //Starten von initGUI
	}
	private void initGUI() { // Die Objekte der GUI werden erzeugt
		try {
			setSize(new Dimension(400, 300));
			getContentPane().setLayout(null);
			getContentPane().setBackground(new java.awt.Color(255, 0, 0));
			{
				DM_Fenster = new JTextPane();
				getContentPane().add(DM_Fenster);
				DM_Fenster.setBounds(32, 83, 159, 20);
				DM_Fenster.setBackground(new java.awt.Color(255, 255, 0));
			}
			{
				Euro_Fenster = new JTextPane();
				getContentPane().add(Euro_Fenster);
				Euro_Fenster.setBounds(235, 82, 159, 20);
				Euro_Fenster.setBackground(new java.awt.Color(255, 255, 0));
			}
			{
				DM_Label = new JLabel();
				getContentPane().add(DM_Label);
				DM_Label.setText("DM");
				DM_Label.setBounds(36, 57, 22, 14);
			}
			{
				Euro_label = new JLabel();
				getContentPane().add(Euro_label);
				Euro_label.setText("Euro");
				Euro_label.setBounds(235, 57, 60, 14);
			}
			{
				DM_Euro_Button = new JButton();
				getContentPane().add(DM_Euro_Button);
				DM_Euro_Button.setText("DM in in Euro");
				DM_Euro_Button.setBounds(255, 167, 134, 21);
				DM_Euro_Button.setBackground(new java.awt.Color(128, 128, 255));
				DM_Euro_Button.setFont(new java.awt.Font("Tahoma", 1, 11));
				DM_Euro_Button.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						System.out
								.println("DM_Euro_Button.actionPerformed, event="
										+ evt);
						// TODO add your code for DM_Euro_Button.actionPerformed
						buttonBerechneClicked();
					}
				});
			}
			{
				Header = new JLabel();
				getContentPane().add(Header);
				Header.setText("DM / Euro- Umrechner");
				Header.setBounds(58, 22, 287, 14);
				Header.setFont(new java.awt.Font("Tahoma", 1, 16));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
        
	// Die Methode für die Aktion, wenn der Knopf gedrückt wird
	public void buttonBerechneClicked() {
		double dm = 0;
		// falls fehlerfreie Eingabe
		int fehlerindex = 0;
		try {
			// Den DM-Wert aus dem Fenster ziehen
			dm = Double.parseDouble(DM_Fenster.getText());
		} catch (NumberFormatException e) {
			// Der fehlerhafte Eingabestring
			System.out.println(e.getMessage());
			dm = -1;
			Euro_Fenster.setText("Fehler in der Eingabe; keine Zahl");
			// deshalb:
			fehlerindex =1;
			
		}
		if (dm >= 0) {
			// in Euro umrechnen
			double euro = d.dmToEuro(dm);
			// Für die Stringvariable ausgabe formatieren
			NumberFormat nf = NumberFormat.getInstance();
			nf.setMaximumFractionDigits(2);
			String ausgabe = nf.format(euro) + "€";
			Euro_Fenster.setText(ausgabe);
		} else   {
			// Kein Eingabefehler; aber es wurde eine negative Zahl ausgegeben
			if (fehlerindex  != 1)
			  Euro_Fenster.setText("Nur positive Beträge eingeben");
		}
	}
}
	

zum Anfang der Seite Begriffe Suchen

Applet-Fassung ohne Knopf; Ereignissteuerung über die Veränderung in den Textfeldern
Jetzt sollte sich ein Applet melden

   class Devise wie oben;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.text.NumberFormat;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
/**
 * This code was edited or generated using CloudGarden's Jigloo
 * 
 */
public class Gui2 extends javax.swing.JApplet {
	private JLabel dM_Label;
	private JTextPane dm_Fenster;
	private JLabel hinweis_Label;
	private JLabel header;
	private JLabel euro_label;
	private JTextPane euro_Fenster;
        Devise d = new Devise();
 
	/**
	 * Auto-generated main method to display this JApplet inside a new JFrame.
	 */
	public static void main(String[] args) {//Main Methode
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {     //Run
				JFrame frame = new JFrame();
				Gui2 inst = new Gui2();
				frame.getContentPane().add(inst);
				((JComponent) frame.getContentPane()).setPreferredSize(inst
						.getSize());
				frame.pack();
				frame.setVisible(true);
			}
		});
	}
	public Gui2() {         //Konstruktor
		super();
		initGUI();
	}
	private void initGUI() {//Objekte der GUI erzeugen
		try {
			setSize(new Dimension(400, 300));
			getContentPane().setLayout(null);
			getContentPane().setBackground(new java.awt.Color(255, 0, 0));
			{
				dM_Label = new JLabel();
				getContentPane().add(dM_Label);
				dM_Label.setText("DM");
				dM_Label.setBounds(36, 57, 22, 14);
			}
			{
				euro_label = new JLabel();
				getContentPane().add(euro_label);
				euro_label.setText("Euro");
				euro_label.setBounds(235, 57, 60, 14);
			}
			{
				header = new JLabel();
				getContentPane().add(header);
				header.setText("DM / Euro- Umrechner");
				header.setBounds(58, 22, 287, 14);
				header.setFont(new java.awt.Font("Tahoma", 1, 16));
			}
			{
				hinweis_Label = new JLabel();
				getContentPane().add(hinweis_Label);
				hinweis_Label
						.setText("(Bitte den Betrag in das passende Feld eingeben)");
				hinweis_Label.setBounds(44, 164, 301, 28);
				hinweis_Label.setFont(new java.awt.Font("Tahoma", 2, 14));
				hinweis_Label.setOpaque(true);
				hinweis_Label.setBackground(new java.awt.Color(255, 0, 0));
				hinweis_Label.setForeground(new java.awt.Color(255, 255, 0));
			}
			{
				dm_Fenster = new JTextPane();
				getContentPane().add(dm_Fenster);
				dm_Fenster.setBounds(30, 83, 153, 20);
				dm_Fenster.setBackground(new java.awt.Color(255, 255, 0));
				dm_Fenster.addKeyListener(new KeyAdapter() {
					public void keyReleased(KeyEvent evt) {
						System.out.println("dm_Fenster.keyReleased, event="
								+ evt);
						// TODO add your code for dm_Fenster.keyReleased
						wandleDMinEuro();
					}
				});
			}
			{
				euro_Fenster = new JTextPane();
				getContentPane().add(euro_Fenster);
				euro_Fenster.setBounds(234, 83, 141, 20);
				euro_Fenster.setBackground(new java.awt.Color(255, 255, 0));
				euro_Fenster.addKeyListener(new KeyAdapter() {
					public void keyReleased(KeyEvent evt) {
						System.out.println("euro_Fenster.keyReleased, event="
								+ evt);
						// TODO add your code for euro_Fenster.keyReleased
						wandleEuroinDM();
					}
				});
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	// Die Methode für die Aktion, wenn ein Ereignis festgestellt wird:
	// Eingabe im dm_Fenster
	public void wandleDMinEuro() {
		double dm = 0;
		// falls fehlerfreie Eingabe
		int fehlerindex = 0;
		try {
			// Den DM-Wert aus dem Fenster ziehen
			dm = Double.parseDouble(dm_Fenster.getText());
		} catch (NumberFormatException e) {
			dm = -1;
			euro_Fenster.setText("Fehler in der Eingabe; keine Zahl");
			// deshalb:
			fehlerindex = 1;
		}
		if (dm >= 0) {
			// in Euro umrechnen
			double euro = d.dmToEuro(dm);
			// Für die Stringvariable ausgabe formatieren
			NumberFormat nf = NumberFormat.getInstance();
			nf.setMaximumFractionDigits(2);
			String ausgabe = nf.format(euro) + "€";
			euro_Fenster.setText(ausgabe);
		} else {
			// Kein Eingabefehler; aber es wurde eine negative Zahl ausgegeben
			if (fehlerindex != 1)
				euro_Fenster.setText("Nur positive Beträge eingeben");
		   }
	}
	// Die Methode für die Aktion, wenn ein Ereignis festgestellt wird:
	// Eingabe im euro_Fenster
	public void wandleEuroinDM() {
		double euro = 0;
		// falls fehlerfreie Eingabe
		int fehlerindex = 0;
		try {
			// Den Euro-Wert aus dem Fenster ziehen
			euro = Double.parseDouble(euro_Fenster.getText());
		} catch (NumberFormatException e) {
			euro = -1;
			dm_Fenster.setText("Fehler in der Eingabe; keine Zahl");
			// deshalb:
			fehlerindex = 1;
		}
		if (euro >= 0) {
			// in DM umrechnen
			double dm = d.euroToDm(euro);
			// Für die Stringvariable ausgabe formatieren
			NumberFormat nf = NumberFormat.getInstance();
			nf.setMaximumFractionDigits(2);
			String ausgabe = nf.format(dm)+ "DM";
			dm_Fenster.setText(ausgabe);
		} else {
			// Kein Eingabefehler; aber es wurde eine negative Zahl ausgegeben
			if (fehlerindex != 1)
			dm_Fenster.setText("Nur positive Beträge eingeben");
		}
	}
}
 

 zum Anfang der SeiteBegriffe Suchen


Quellen

         Herrn Mahdi D-Manesh / Universität Mainz / Fachbereich Informatik bin ich für die Durchsicht der Vorlage und die 
         hilfreichen Anregungen sehr dankbar.

zum Anfang der Seite    Begriffe Suchen

Ergänzungen und Anregungen bitte an Claus Schmitt
 

Zurück zur Startseite Informatik / Rheinland-Pfalz Startseite Informatik-Rheinland-Pfalz
Impressum · Datenschutz