Skip to Content

1.7 Übungen

Stefan Schneider's picture

Duke als Boxer
(Lizenz)

1.7.1 Das erste Java Programm

class HelloWorld {
	public static void main(String[] args) {
	   System.out.println("Hello World!");
	}
}
  • Übersetzen Sie die Datei HelloWorld.java mit Hilfe des Kommandos javac in eine Bytecode-Datei mit dem Namen HelloWorld.class.
  • Führen Sie das Programm mit dem Kommando java aus.

1.7.2 Eine einfache grafische Oberfläche

Duke auf Schaukel

(Lizenz)

  1. Kopieren Sie den Quellcode des folgenden grafischen Programms DemoFrame in eine Datei mit dem Namen DemoFrame.java.
  2. Übersetzen Sie das Programm in Byteocode
  3. führen Sie das Programm aus
  4.  Ändern Sie durch experimentieren das Programm wie folgt ab:
  • Ändern Sie die den konstanten Text "Input Text:" zu einem anderen Text
  • Ändern Sie die Standardbelegung des Eingabetexts "Input" zu einer anderen Vorbelegung
  • Legen Sie das Ausgabefeld im Fenster über die Eingabezeile mt dem "Button" 

1.7.3 Swing Rechner

1. Quellcode erzeugen

Erzeugen Sie eine Datei mit dem Namen SwingRechner.java und dem folgendem Inhalt:

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPanel;

public class SwingRechner  extends javax.swing.JFrame {
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextFieldOut;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;

    private void initComponents() {
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jTextFieldOut = new javax.swing.JTextField();

        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Swing Rechner");
        jTextField1.setText("0");
        jTextField1.setColumns(6);
        jTextField2.setText("0");
        jTextField2.setColumns(6);
        jTextFieldOut.setText("0");
        jTextFieldOut.setEditable(false);

        jButton1.setText("XXXX");
        jButton2.setText("YYYY");
        jButton3.setText("ZZZZ");

        JPanel radioPanel = new JPanel(new GridLayout(1, 0));
        radioPanel.add(jButton1);
        radioPanel.add(jButton2);
        radioPanel.add(jButton3);

        jButton1.addActionListener(new ActionListener()
                {
                public void actionPerformed(ActionEvent e) {
                    if(e.getSource() == jButton1)
                        jTextFieldOut.setText(
                                executeOperation1(jTextField1.getText(),
                                jTextField2.getText()));
                    }
                }
          );
          jButton2.addActionListener(new ActionListener()
                {
                public void actionPerformed(ActionEvent e) {
                    if(e.getSource() == jButton2)
                        jTextFieldOut.setText(
                                executeOperation2(jTextField1.getText(),
                                jTextField2.getText()));
                    }
                }
          );
          jButton3.addActionListener(new ActionListener()
                {
                public void actionPerformed(ActionEvent e) {
                    if(e.getSource() == jButton3)
                        jTextFieldOut.setText(
                                executeOperation3(jTextField1.getText(),
                                jTextField2.getText()));
                    }
                }
          );

        this.setBounds(300, 300, 200, 30);
        setMinimumSize(new Dimension(200,30));
        getContentPane().add(jTextField1, BorderLayout.WEST);
        getContentPane().add(jTextField2, BorderLayout.EAST);
        getContentPane().add(radioPanel, BorderLayout.NORTH);
        getContentPane().add(jTextFieldOut, BorderLayout.SOUTH);
        pack();
   }
    public SwingRechner() {
        initComponents();
    }

    public static void main(String[] args) {

        SwingRechner f1 = new SwingRechner();
        f1.setVisible(true);

    }

    public String executeOperation1(String s1,String s2) {
        int op1= Integer.parseInt(s1);
        int op2= Integer.parseInt(s2);
        // Add Application logic here:
        int resultInt = 0;
        return (Integer.toString(resultInt)) ;
    }
    public String executeOperation2(String s1,String s2) {
        int op1= Integer.parseInt(s1);
        int op2= Integer.parseInt(s2);
        // Add Application logic here:
        int resultInt = 1;
        return (Integer.toString(resultInt)) ;
    }
    public String executeOperation3(String s1,String s2) {
        int op1= Integer.parseInt(s1);
        int op2= Integer.parseInt(s2);
        int resultInt = 2;
        return (Integer.toString(resultInt)) ;
    }
}

2. Erzeugen Sie die Javabytecodedatei SwingRechner.class

javac SwingRechner.java

3. Führen sie das Programm aus

 java SwingRechner

4. Programmanpassung

Passen Sie das Programm an um einen Rechner für drei Grundrechenarten zu erhalten. Ersetzen sie in SwingRechner.java die folgenden Texte

  • XXXX durch ein Symbol einer Rechenart
  • YYYY durch eine Symbol einer Rechenart
  • ZZZZ durch ein Symbol einer Rechenart

Implementieren Sie die drei entsprechenden Grundrechenarten in den Methoden executeOperation1(), executeOperation2(), executeOperation3().

Ändern Sie hierfür die drei Zuweisungen sinngemäss und ersetzen sie die Zuweisungen von 0, 1, 2 durch den passenden mathematischen Term mit op1 und op2.

...
        int resultInt = 0;
...
        int resultInt = 1;
...
        int resultInt = 2;
...

Das Programm soll anschliesend die Operationen passend zu den Buttonbeschriftungen ausführen

5. Speichern, Übersetzen und Ausführen des Programms

1.7.4 Übersetzen und Ausführen eines Programms mit Konsoleneingaben

Erzeugen Sie eine Datei mit dem entsprechenden Namen. Setzen Sie den unten aufgeführten Quellcode ein. Übersetzen Sie ihn. Führen Sie ihn aus.

import java.util.Scanner;
public class GGT {
public static void main(String[] args) {
Scanner eingabe = new Scanner(System.in);
System.out.print("Geben Sie die erste Zahl ein: ");
int zahl1 = eingabe.nextInt();
System.out.print("Geben Sie die zweite Zahl ein: ");
int zahl2 = eingabe.nextInt();
int ergebnis = ggT(zahl1, zahl2);
System.out.println("Ergebnis: " + ergebnis);
}
/**
* Euklidscher Algorithmus als Java-Methode
*/
public static int ggT(int x, int y) {
while (x != y) {
System.out.println("Zwischenbelegung, x= " + x + ", y=" + y);
if (x > y) {
x = x - y;
} else {
y = y - x;
}
}
return x;
}
}

 



about seo | book