⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mandelbrotapplet.java

📁 This "zip" archive contains a complete copy of the web site. It should be usable on almost any compu
💻 JAVA
字号:
package edu.hws.eck.mdb;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.InputStream;import java.net.URL;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;/** * Runs the mandelbrot viewer program as an applet.  The applet  sets * up a MandelbrotPanel in the content pane of the applet and adds an * appropriate menu bar.  Note that in an applet tag on a web page, this * class should be referred to as code="edu.hws.eck.mdb.MandelbrotApplet.class". *  * This applet version of the program can add an extra "Examples" menu to the * program.  The Examples menu contains a list of settings files.  These are * files in the format that are saved by the Save Params command in the  * stand-alone version of the program.  When the user selects one of the * items from the menu, the corresponding settings file is loaded and * applied to the display.  Since applets can't access the file system, * the files must be stored as resources along with the program, in directory * edu/hws/edu/mdb/examples, and this source code file must be modified by setting  * the SETTINGS_FILE_LIST contant to a list of the names of the file. This is * not a great way of doing things, but the program is not really meant to run * as an applet in any case.  (I've only done it this way so that when the applet * is used as a decoration for the end of Chapter 12 in "Introduction to  * Programming Using Java", there would be something interesting there for * readers to look at.) */public class MandelbrotApplet extends JApplet {      /**    * If the value of SETTINGS_FILE_LIST is non-null and is not of length zero,    * then an Examples menu is added to the applet's menu bar.  The items in the    * menu are the strings from this array.  For a string str in the array,    * a resource file name is constructed as:   "edu/hws/edu/mdb/examples" + str + ".mdb"    * The resulting names must be names of resource files that are accessible     * to the applet.  The files should be settings files for the Mandelbrot    * Viewer program.  When the user selects an item from the Examples menu,    * the corresponding file is loaded and applied to the display.    */   private static final String[] SETTINGS_FILE_LIST =  {      "settings1", "settings2", "settings3", "settings4", "settings5",       "settings6", "settings7", "settings8", "settings9", "settings10",      "settings11", "settings12"   };      private MandelbrotPanel panel;   private Menus menuBar;      public void init() {  // Initialize the applet.      panel = new MandelbrotPanel();      JPanel content = new JPanel();      content.setLayout(new BorderLayout()); // For adding a 1-pixel black border.      content.add(panel);      content.setBorder(BorderFactory.createLineBorder(Color.BLACK,1));      setContentPane(content);      JMenu exampleMenu = constructExampleMenu();      menuBar = new Menus(panel,null,true);      if (exampleMenu != null)         menuBar.add(exampleMenu);      setJMenuBar(menuBar);   }      private JMenu constructExampleMenu() {  // Constructs the Examples menu.      if (SETTINGS_FILE_LIST == null || SETTINGS_FILE_LIST.length == 0)         return null;      JMenu menu = new JMenu("Examples");      for (int i = 0; i < SETTINGS_FILE_LIST.length; i++) {         final String str = SETTINGS_FILE_LIST[i];         JMenuItem item = new JMenuItem(str);         item.addActionListener( new ActionListener() {            public void actionPerformed(ActionEvent e) {               loadFile(str);            }         });         menu.add(item);      }      return menu;   }      private void loadFile(String resourceName) {  // Tries to load one of the examples.      resourceName = "edu/hws/eck/mdb/examples/" + resourceName + ".mdb";      ClassLoader cl = MandelbrotApplet.class.getClassLoader();      URL resourceURL = cl.getResource(resourceName);      if (resourceURL != null) {         try {            InputStream stream = resourceURL.openStream();            DocumentBuilder docReader = DocumentBuilderFactory.newInstance().newDocumentBuilder();            Document xmldoc = docReader.parse(stream);            menuBar.retrieveSettingsFromXML(xmldoc);         }         catch (Exception e) {            JOptionPane.showMessageDialog(this,"Internal Error.  Couldn't load example\n" + e);         }      }      else         JOptionPane.showMessageDialog(this,"Internal Error.  Couldn't find file.");   }      /**    * This is called when the applet object is being discarded.  I want to make    * sure that the worker threads in the MandelbrotDisplay are terminated.    */   public void destroy() {      panel.getDisplay().shutDownThreads();   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -