Advertisement
Guest User

Heimübung 7

a guest
May 29th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.52 KB | None | 0 0
  1. Aufgabe 1 (Warum funktioniert das nicht?)
  2.  
  3. //Zeichenfeld
  4. import java.awt.Color;
  5. import java.awt.Graphics;
  6. import javax.swing.JPanel;
  7.  
  8. public class Zeichenfeld extends JPanel
  9. {
  10.     boolean abfrage = false;
  11.  
  12.     public void paintComponent(Graphics g)
  13.     {
  14.        
  15.         super.paintComponent(g);
  16.         if (abfrage)
  17.         {
  18.             int x = (int) (Math.random()*getWidth()); (Koordinaten noch nicht modifiziert, müssen vermutlich noch bearbeiten werden
  19.             int y = (int) (Math.random()*getHeight());
  20.             g.drawOval(x, y, 20, 20);
  21.             g.setColor(Color.BLUE);
  22.            
  23.         }
  24.        
  25.     }
  26. }
  27.  
  28. //KreisFenster
  29.  
  30. import java.awt.BorderLayout;
  31. import java.awt.event.ActionEvent;
  32. import java.awt.event.ActionListener;
  33.  
  34. import javax.swing.JButton;
  35. import javax.swing.JFrame;
  36. import javax.swing.JPanel;
  37.  
  38.  
  39. public class Kreisfenster extends JFrame
  40. {
  41.    
  42.         JPanel panel1, panel2;
  43.         Zeichenfeld feld;
  44.        
  45.         public Kreisfenster()
  46.         {
  47.             super();
  48.             this.setTitle("Zufallskreise");
  49.             this.setSize(600, 600);
  50.             BorderLayout bl = new BorderLayout();
  51.             feld = new Zeichenfeld();
  52.            
  53.             JButton button = new JButton("Kreis");
  54.             KreisButtonListener kl = new KreisButtonListener();
  55.             button.addActionListener(kl);
  56.            
  57.             panel1 = new JPanel(); //JPanel für den Button
  58.             panel1.add(button);
  59.             panel1.setLayout(bl);
  60.            
  61.             panel2 = new JPanel();//JPanel für das Zeichenfeld
  62.             panel2.add(feld);
  63.             panel2.setLayout(bl);
  64.            
  65.             this.setLayout(bl);
  66.             this.add(panel1, bl.NORTH);
  67.             this.add(panel2);
  68.            
  69.             this.setVisible(true);
  70.             this.setLocationRelativeTo(null);
  71.             this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  72.            
  73.            
  74.         }
  75.        
  76.         class KreisButtonListener implements ActionListener
  77.         {
  78.                
  79.             public void actionPerformed(ActionEvent e)
  80.             {
  81.                 if (((JButton) e.getSource()).getText().equals("Kreis")) //wenn taste betätigt wird, mit bool paintcomp-
  82.                 {                                                       //methode kreis ausgeben lassen
  83.                     feld.abfrage = true;
  84.                     repaint();
  85.                 }
  86.             }
  87.         }
  88.        
  89.         public static void main (String [] args)
  90.         {
  91.             new Kreisfenster();
  92.         }
  93. }
  94.  
  95. // Lambda interface
  96.  
  97.  
  98. public interface Lambda
  99. {
  100.     public double retValue(double value);
  101. }
  102. ---------------------------------------------------------------------------------------------------------------------
  103. Aufgabe 2
  104.  
  105. //UmrechnerGUI
  106.  
  107. import java.awt.FlowLayout;
  108. import java.awt.event.ActionEvent;
  109. import java.awt.event.ActionListener;
  110.  
  111. import javax.swing.JButton;
  112. import javax.swing.JFrame;
  113. import javax.swing.JLabel;
  114. import javax.swing.JPanel;
  115. import javax.swing.JTextField;
  116.  
  117.  
  118. public class UmrechnerGUI extends JFrame
  119. {
  120.     JTextField textfeld, textfeld2;
  121.     JPanel panel;
  122.    
  123.     public UmrechnerGUI()
  124.     {
  125.         super();
  126.         this.setSize(600, 400);
  127.         this.setResizable(false); //sorgt dafür, dass man die Groeße nicht verändern kann
  128.        
  129.         JButton button = new JButton("Umrechnen");
  130.         panel = new JPanel();
  131.         panel.setLayout(new FlowLayout());
  132.        
  133.        
  134.         UmrechnungsListener ul = new UmrechnungsListener();
  135.         button.addActionListener(ul);
  136.        
  137.         textfeld = new JTextField(20);
  138.         textfeld2 = new JTextField (20);
  139.         JLabel euro = new JLabel("Euro");
  140.         JLabel pfund = new JLabel("Pfund");
  141.        
  142.        
  143.         textfeld.getText();
  144.         FlowLayout fl = new FlowLayout();
  145.         fl.setHgap(100);
  146.        
  147.         textfeld2.setEditable(false);
  148.         panel.setLayout(fl);
  149.         panel.add(textfeld);
  150.         panel.add(euro);
  151.         panel.add(textfeld2);
  152.         panel.add(pfund);
  153.         panel.add(button);
  154.        
  155.        
  156.         this.add(panel);
  157.         this.add(panel);
  158.         this.setVisible(true);
  159.         this.setLocationRelativeTo(null);
  160.         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  161.     }  
  162.    
  163.     public static boolean isNumeric(String str)  //statische Methode, um zu Prüfen, ob Eingabe korrekt ist
  164.     {  
  165.       try  
  166.       {  
  167.         double d = Double.parseDouble(str);  
  168.       }  
  169.       catch(NumberFormatException nfe)  
  170.       {  
  171.         return false;  
  172.       }  
  173.       return true;  
  174.     }
  175.  
  176.     class UmrechnungsListener implements ActionListener, Lambda
  177.     {
  178.         public double retValue (double value) //retValue-Funktion für lambda ausdruck
  179.         {
  180.             return value; //gibt wert aus lamba-ausdruck in der mainfunktion zurück
  181.         }
  182.        
  183.        
  184.         public void actionPerformed(ActionEvent e)
  185.         {
  186.        
  187.             if (isNumeric(textfeld.getText()))
  188.             {
  189.                 double zahl = Double.parseDouble(textfeld.getText());
  190.                 Lambda f3 = (x) -> {x = x*0.8608; return x; }; //lambda ausdruck
  191.                 textfeld2.setText(String.valueOf(f3.retValue(zahl)));
  192.                
  193.             }
  194.             else
  195.             {
  196.                 textfeld2.setText("Ungueltige Eingabe");
  197.             }
  198.            
  199.         }
  200.     }
  201.    
  202.    
  203.     public static void main (String [] args)
  204.     {
  205.         new UmrechnerGUI();
  206.     }
  207.    
  208. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement