{"id":10339,"date":"2015-08-26T00:53:22","date_gmt":"2015-08-26T04:53:22","guid":{"rendered":"http:\/\/bangla.salearningschool.com\/?p=10339"},"modified":"2015-08-24T09:01:43","modified_gmt":"2015-08-24T13:01:43","slug":"a-frame-that-lets-you-draw-circles-with-mouse-clicks","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=10339","title":{"rendered":"A Frame that lets you draw circles with mouse clicks"},"content":{"rendered":"<pre>SavedFrame.java\r\n****************\r\nA Frame that lets you draw circles with mouse clicks \r\n\/\/**************\r\nimport java.awt.*;\r\nimport java.awt.event.*;\r\nimport java.io.*;\r\n\r\n\/** A Frame that lets you draw circles with mouse clicks \r\n\u00a0*\u00a0 and then save the Frame and all circles to disk.\r\n\u00a0*\r\npublic class SavedFrame extends CloseableFrame\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 implements ActionListener {\r\n\u00a0 \r\n\u00a0 \/** If a saved version exists, use it. Otherwise create a \r\n\u00a0\u00a0 *\u00a0 new one.\r\n\u00a0\u00a0 *\/\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0 public static void main(String[] args) {\r\n\u00a0\u00a0\u00a0 SavedFrame frame;\r\n\u00a0\u00a0\u00a0 File serializeFile = new File(serializeFilename);\r\n\u00a0\u00a0\u00a0 if (serializeFile.exists()) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 try {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 FileInputStream fileIn = \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 new FileInputStream(serializeFile);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ObjectInputStream in = new ObjectInputStream(fileIn);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 frame = (SavedFrame)in.readObject();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 frame.setVisible(true);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 } catch(IOException ioe) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\"Error reading file: \" + ioe);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 } catch(ClassNotFoundException cnfe) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\"No such class: \" + cnfe);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 } else {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 frame = new SavedFrame();\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0 }\r\n\r\n\u00a0 private static String serializeFilename =\"SavedFrame.ser\";\r\n\u00a0 private CirclePanel circlePanel;\r\n\u00a0 private Button clearButton, saveButton;\r\n\r\n\u00a0 \/** Build a frame with CirclePanel and buttons. *\/\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0 public SavedFrame() {\r\n\u00a0\u00a0\u00a0 super(\"SavedFrame\");\r\n\u00a0\u00a0\u00a0 setBackground(Color.white);\r\n\u00a0\u00a0\u00a0 setFont(new Font(\"Serif\", Font.BOLD, 18));\r\n\u00a0\u00a0\u00a0 circlePanel = new CirclePanel();\r\n\u00a0\u00a0\u00a0 add(\"Center\", circlePanel);\r\n\u00a0\u00a0\u00a0 Panel buttonPanel = new Panel();\r\n\u00a0\u00a0\u00a0 buttonPanel.setBackground(Color.lightGray);\r\n\u00a0\u00a0\u00a0 clearButton = new Button(\"Clear\");\r\n\u00a0\u00a0\u00a0 saveButton = new Button(\"Save\");\r\n\u00a0\u00a0\u00a0 buttonPanel.add(clearButton);\r\n\u00a0\u00a0\u00a0 buttonPanel.add(saveButton);\r\n\u00a0\u00a0\u00a0 add(buttonPanel, BorderLayout.SOUTH);\r\n\u00a0\u00a0\u00a0 clearButton.addActionListener(this);\r\n\u00a0\u00a0\u00a0 saveButton.addActionListener(this);\r\n\u00a0\u00a0\u00a0 setSize(300, 300);\r\n\u00a0\u00a0\u00a0 setVisible(true);\r\n\u00a0 }\r\n\r\n\u00a0 \/** If \"Clear\" clicked, delete all existing circles. If \"Save\"\r\n\u00a0\u00a0 *\u00a0 clicked, save existing frame configuration (size, \r\n\u00a0\u00a0 *\u00a0 location, circles, etc.) to disk.\r\n\u00a0\u00a0 *\/\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0 public void actionPerformed(ActionEvent event) {\r\n\u00a0\u00a0\u00a0 if (event.getSource() == clearButton) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 circlePanel.removeAll();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 circlePanel.repaint();\r\n\u00a0\u00a0\u00a0 } else if (event.getSource() == saveButton) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 try {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 FileOutputStream fileOut =\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 new FileOutputStream(\"SavedFrame.ser\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ObjectOutputStream out = \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 new ObjectOutputStream(fileOut);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 out.writeObject(this);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 out.flush();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 out.close();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 } catch(IOException ioe) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println(\"Error saving frame: \" + ioe);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0 }\r\n}\r\n****************<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>SavedFrame.java **************** A Frame that lets you draw circles with mouse clicks \/\/************** import java.awt.*; import java.awt.event.*; import java.io.*; \/** A Frame that lets you draw circles with mouse clicks \u00a0*\u00a0 and then save the Frame and all circles to disk. \u00a0* public class SavedFrame extends CloseableFrame \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 implements ActionListener { \u00a0 \u00a0 \/** If &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/bangla.sitestree.com\/?p=10339\">Continue reading<\/a><\/p>\n","protected":false},"author":130,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1417,1424],"tags":[706,308,285],"class_list":["post-10339","post","type-post","status-publish","format-standard","hentry","category-code-programming-samples--","category-javaj2eej2me","tag-code","tag-java","tag-285","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":27016,"url":"http:\/\/bangla.sitestree.com\/?p=27016","url_meta":{"origin":10339,"position":0},"title":"A Frame that lets you draw circles with mouse clicks #Programming Code Examples #Java\/J2EE\/J2ME #AWT Components","author":"Author-Check- Article-or-Video","date":"May 8, 2021","format":false,"excerpt":"SavedFrame.java **************** A Frame that lets you draw circles with mouse clicks \/\/************** import java.awt.*; import java.awt.event.*; import java.io.*; \/** A Frame that lets you draw circles with mouse clicks * and then save the Frame and all circles to disk. * public class SavedFrame extends CloseableFrame implements ActionListener {\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10385,"url":"http:\/\/bangla.sitestree.com\/?p=10385","url_meta":{"origin":10339,"position":1},"title":"CircleDrawer3.java Applet that uses a named nested class to handle mouse events and draw circles. Illustrates third approach to event-handling with listeners: using inner classes.","author":"","date":"August 27, 2015","format":false,"excerpt":"import java.applet.Applet; import java.awt.*; import java.awt.event.*; \/** Draw circles centered where the user clicks. \u00a0*\u00a0 Uses named inner classes. \u00a0* \u00a0 \u00a0****************** public class CircleDrawer3 extends Applet { \u00a0 public void init() { \u00a0\u00a0\u00a0 setForeground(Color.blue); \u00a0\u00a0\u00a0 addMouseListener(new CircleListener()); \u00a0 } \u00a0 private class CircleListener extends MouseAdapter { \u00a0\u00a0\u00a0 private int\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10387,"url":"http:\/\/bangla.sitestree.com\/?p=10387","url_meta":{"origin":10339,"position":2},"title":"Applet that uses a anonymous nested class to handle mouse events and draw circles. Variation on third approach to event-handling: using inner classes.","author":"","date":"August 27, 2015","format":false,"excerpt":"import java.applet.Applet; import java.awt.*; import java.awt.event.*; \/** Draw circles centered where the user clicks. \u00a0*\u00a0 Uses anonymous inner classes. \u00a0* \u00a0 ********************** public class CircleDrawer4 extends Applet { \u00a0 public void init() { \u00a0\u00a0\u00a0 setForeground(Color.blue); \u00a0\u00a0\u00a0 addMouseListener \u00a0\u00a0\u00a0\u00a0\u00a0 (new MouseAdapter() { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 private int radius = 25; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 public void\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26759,"url":"http:\/\/bangla.sitestree.com\/?p=26759","url_meta":{"origin":10339,"position":3},"title":"Applet that uses a anonymous nested class to handle mouse events and draw circles. Variation on third approach to event-handling: using inner classes. #Programming Code Examples #Java\/J2EE\/J2ME #Mouse and Keyboard Events","author":"Author-Check- Article-or-Video","date":"April 30, 2021","format":false,"excerpt":"import java.applet.Applet; import java.awt.*; import java.awt.event.*; \/** Draw circles centered where the user clicks. * Uses anonymous inner classes. * ********************** public class CircleDrawer4 extends Applet { public void init() { setForeground(Color.blue); addMouseListener (new MouseAdapter() { private int radius = 25; public void mousePressed(MouseEvent event) { Graphics g = getGraphics();\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10383,"url":"http:\/\/bangla.sitestree.com\/?p=10383","url_meta":{"origin":10339,"position":4},"title":"Tiny applet that uses CircleListener to handle mouse events.","author":"","date":"August 27, 2015","format":false,"excerpt":"import java.applet.Applet; import java.awt.*; \/** Draw circles centered where the user clicks. \u00a0*\u00a0 Uses an external listener. \u00a0* \u00a0 \u00a0*********** public class CircleDrawer1 extends Applet { \u00a0 public void init() { \u00a0\u00a0\u00a0 setForeground(Color.blue); \u00a0\u00a0\u00a0 addMouseListener(new CircleListener()); \u00a0 } }","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26757,"url":"http:\/\/bangla.sitestree.com\/?p=26757","url_meta":{"origin":10339,"position":5},"title":"CircleDrawer3.java Applet that uses a named nested class to handle mouse events and draw circles. Illustrates third approach to event-handling with listeners: using inner classes. #Programming Code Examples #Java\/J2EE\/J2ME #Mouse and Keyboard Events","author":"Author-Check- Article-or-Video","date":"April 30, 2021","format":false,"excerpt":"import java.applet.Applet; import java.awt.*; import java.awt.event.*; \/** Draw circles centered where the user clicks. * Uses named inner classes. * ****************** public class CircleDrawer3 extends Applet { public void init() { setForeground(Color.blue); addMouseListener(new CircleListener()); } private class CircleListener extends MouseAdapter { private int radius = 25; public void mousePressed(MouseEvent event)\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10339","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/users\/130"}],"replies":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10339"}],"version-history":[{"count":1,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10339\/revisions"}],"predecessor-version":[{"id":10340,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10339\/revisions\/10340"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10339"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10339"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}