Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Aufgabe 1 (Warum funktioniert das nicht?)
- //Zeichenfeld
- import java.awt.Color;
- import java.awt.Graphics;
- import javax.swing.JPanel;
- public class Zeichenfeld extends JPanel
- {
- boolean abfrage = false;
- public void paintComponent(Graphics g)
- {
- super.paintComponent(g);
- if (abfrage)
- {
- int x = (int) (Math.random()*getWidth()); (Koordinaten noch nicht modifiziert, müssen vermutlich noch bearbeiten werden
- int y = (int) (Math.random()*getHeight());
- g.drawOval(x, y, 20, 20);
- g.setColor(Color.BLUE);
- }
- }
- }
- //KreisFenster
- import java.awt.BorderLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- public class Kreisfenster extends JFrame
- {
- JPanel panel1, panel2;
- Zeichenfeld feld;
- public Kreisfenster()
- {
- super();
- this.setTitle("Zufallskreise");
- this.setSize(600, 600);
- BorderLayout bl = new BorderLayout();
- feld = new Zeichenfeld();
- JButton button = new JButton("Kreis");
- KreisButtonListener kl = new KreisButtonListener();
- button.addActionListener(kl);
- panel1 = new JPanel(); //JPanel für den Button
- panel1.add(button);
- panel1.setLayout(bl);
- panel2 = new JPanel();//JPanel für das Zeichenfeld
- panel2.add(feld);
- panel2.setLayout(bl);
- this.setLayout(bl);
- this.add(panel1, bl.NORTH);
- this.add(panel2);
- this.setVisible(true);
- this.setLocationRelativeTo(null);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- class KreisButtonListener implements ActionListener
- {
- public void actionPerformed(ActionEvent e)
- {
- if (((JButton) e.getSource()).getText().equals("Kreis")) //wenn taste betätigt wird, mit bool paintcomp-
- { //methode kreis ausgeben lassen
- feld.abfrage = true;
- repaint();
- }
- }
- }
- public static void main (String [] args)
- {
- new Kreisfenster();
- }
- }
- // Lambda interface
- public interface Lambda
- {
- public double retValue(double value);
- }
- ---------------------------------------------------------------------------------------------------------------------
- Aufgabe 2
- //UmrechnerGUI
- import java.awt.FlowLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JTextField;
- public class UmrechnerGUI extends JFrame
- {
- JTextField textfeld, textfeld2;
- JPanel panel;
- public UmrechnerGUI()
- {
- super();
- this.setSize(600, 400);
- this.setResizable(false); //sorgt dafür, dass man die Groeße nicht verändern kann
- JButton button = new JButton("Umrechnen");
- panel = new JPanel();
- panel.setLayout(new FlowLayout());
- UmrechnungsListener ul = new UmrechnungsListener();
- button.addActionListener(ul);
- textfeld = new JTextField(20);
- textfeld2 = new JTextField (20);
- JLabel euro = new JLabel("Euro");
- JLabel pfund = new JLabel("Pfund");
- textfeld.getText();
- FlowLayout fl = new FlowLayout();
- fl.setHgap(100);
- textfeld2.setEditable(false);
- panel.setLayout(fl);
- panel.add(textfeld);
- panel.add(euro);
- panel.add(textfeld2);
- panel.add(pfund);
- panel.add(button);
- this.add(panel);
- this.add(panel);
- this.setVisible(true);
- this.setLocationRelativeTo(null);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- public static boolean isNumeric(String str) //statische Methode, um zu Prüfen, ob Eingabe korrekt ist
- {
- try
- {
- double d = Double.parseDouble(str);
- }
- catch(NumberFormatException nfe)
- {
- return false;
- }
- return true;
- }
- class UmrechnungsListener implements ActionListener, Lambda
- {
- public double retValue (double value) //retValue-Funktion für lambda ausdruck
- {
- return value; //gibt wert aus lamba-ausdruck in der mainfunktion zurück
- }
- public void actionPerformed(ActionEvent e)
- {
- if (isNumeric(textfeld.getText()))
- {
- double zahl = Double.parseDouble(textfeld.getText());
- Lambda f3 = (x) -> {x = x*0.8608; return x; }; //lambda ausdruck
- textfeld2.setText(String.valueOf(f3.retValue(zahl)));
- }
- else
- {
- textfeld2.setText("Ungueltige Eingabe");
- }
- }
- }
- public static void main (String [] args)
- {
- new UmrechnerGUI();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement