欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

保存窗口设置信息,保存窗口信息,保存窗口设置信息[Jav

来源: javaer 分享于  点击 10282 次 点评:63

保存窗口设置信息,保存窗口信息,保存窗口设置信息[Jav


保存窗口设置信息

[Java]代码

    public class WindowSaver implements AWTEventListener {        private static WindowSaver saver;        private Map framemap;        private WindowSaver( ) {            framemap = new HashMap( );        }        public static WindowSaver getInstance( ) {            if(saver == null) {                saver = new WindowSaver( );        }        return saver;     Toolkit tk = Toolkit.getDefaultToolkit( );      tk.addAWTEventListener(WindowSaver.getInstance( ),          AWTEvent.WINDOW_EVENT_MASK);      public void eventDispatched(AWTEvent evt) {          try {              if(evt.getID( ) == WindowEvent.WINDOW_OPENED) {                  ComponentEvent cev = (ComponentEvent)evt;                  if(cev.getComponent( ) instanceof JFrame) {                      JFrame frame = (JFrame)cev.getComponent( );                      loadSettings(frame);                  }              }          }catch(Exception ex) {              p(ex.toString( ));          }      }      public static void loadSettings(JFrame frame) throws IOException {          Properties settings = new Properties( );          settings.load(new FileInputStream("configuration.props"));          String name = frame.getName( );          int x = getInt(settings,name+".x",100);          int y = getInt(settings,name+".y",100);          int w = getInt(settings,name+".w",500);          int h = getInt(settings,name+".h",500);          frame.setLocation(x,y);          frame.setSize(new Dimension(w,h));          saver.framemap.put(name,frame);          frame.validate( );      }    public static int getInt(Properties props, String name, int value) {         String v = props.getProperty(name);         if(v == null) {            return value;        }        return Integer.parseInt(v);    }     file.add(new AbstractAction("Quit") {          public void actionPerformed(ActionEvent evt) {              try {                  WindowSaver.saveSettings( );                  System.exit(0);              } catch (Exception ex) {                 System.out.println(ex);              }          }      });      public static void saveSettings( ) throws IOException {          Properties settings = new Properties( );          settings.load(new FileInputStream("configuration.props"));          Iterator it = saver.framemap.keySet( ).iterator( );          while(it.hasNext( )) {                  String name = (String)it.next( );               JFrame frame = (JFrame)saver.framemap.get(name);                  settings.setProperty(name+".x",""+frame.getX( ));                  settings.setProperty(name+".y",""+frame.getY( ));                  settings.setProperty(name+".w",""+frame.getWidth( ));                  settings.setProperty(name+".h",""+frame.getHeight( ));          }           settings.store(new FileOutputStream("configuration.props"),null);       }         public static void main(String[] args) throws Exception {             Toolkit tk = Toolkit.getDefaultToolkit( );             tk.addAWTEventListener(WindowSaver.getInstance( ),                AWTEvent.WINDOW_EVENT_MASK);             final JFrame frame = new JFrame("Hack X");             frame.setName("WSTes.main");             frame.getContentPane( ).add(new JButton("a button"));             JMenuBar mb = new JMenuBar( );             JMenu menu = new JMenu("File");             menu.add(new AbstractAction("Quit") {                 public void actionPerformed(ActionEvent evt) {                     try {                         WindowSaver.saveSettings( );                         System.exit(0);                     } catch (Exception ex) {                         System.out.println(ex);                     }                 }             });             mb.add(menu);             frame.setJMenuBar(mb);             frame.pack( );             frame.show( );         }    }
相关栏目:

用户点评