Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Modify the attached version of the face with the winking eye. This version has t

ID: 3566023 • Letter: M

Question

 Modify the attached version of the face with the winking eye.  This version has the eye wink when the user clicks the button.  Save as the program as ex145.java and change the program so the eye will continue to wink on its own.  Follow the comments to modify the code.  It will lesson flicker by only redrawing the eye that winks and not the background, face, or other eye.  Add a static sleep so the face does not wink too fast.    import java.awt.*; import java.awt.event.*; import javax.swing.*;  public class ex1011c extends JApplet implements ActionListener {                 // get rid of all winkbutton code          JButton winkbutton = new JButton("Wink At You");         boolean wink = false, first = true;         Container c;          public void init()         {                 c = getContentPane();                 c.setLayout(new FlowLayout());                 c.setBackground(Color.blue);                 winkbutton.setForeground(Color.cyan);                 c.add(winkbutton);                 winkbutton.addActionListener(this);         }                  // get rid of actionPerformed          public void actionPerformed(ActionEvent e)         {                 wink = !wink;                 repaint();         }          public void paint(Graphics g)         {                 /* if first time, draw the face and non winking eye,                         set first to false */                  super.paint(g);                 g.setColor(Color.yellow);                 g.fillOval(50, 50, 100, 100);                 g.setColor(Color.black);                 g.fillOval(85, 80, 10, 20);                  /* cover just the eye that winks (if winking or not, but do not                  cover anything else), switch the wink boolean */                  // draw the full eye or winking eye                  if (wink)                         g.fillOval(105, 88, 10, 5);                 else                         g.fillOval(105, 80, 10, 20);                  // go to sleep for a second                  // call repaint         }                  // override update to lesson flicker  } 

Explanation / Answer

import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.Timer; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; public class Blinky { public static void main(String[] args) { new Blinky(); } public Blinky() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { } JFrame frame = new JFrame("Testing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); frame.add(new BlinkPane()); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } }); } public class BlinkPane extends JPanel { private boolean wink; public BlinkPane() { Timer timer = new Timer(1000, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { wink = !wink; repaint(); } }); timer.start(); } @Override public Dimension getPreferredSize() { return new Dimension(200, 200); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g.create(); int x = (getWidth() - 10) / 2; int eyeHeight = 20; if (wink) { eyeHeight = 5; } int y = (getWidth() - eyeHeight) / 2; g.fillOval(x, y, 10, eyeHeight); g2d.dispose(); } } }

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote