[an error occurred while processing this directive]
Rheinland-Pfalz;
Informatik
28.3.2009; letzte Aktualisierung:19.6.2014 ; Claus Schmitt
![]() |
Startseite Informatik-Rheinland-Pfalz |
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)
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 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");
}
} } |
||||
|
![]() |
Startseite Informatik-Rheinland-Pfalz |