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

📄 resourcefactory.java

📁 用java实现UML建模,由高手编写..适合有一定能力的java程序员学习
💻 JAVA
字号:
/*
Violet - A program for editing UML diagrams.

Copyright (C) 2002 Cay S. Horstmann (http://horstmann.com)

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

package com.horstmann.violet.framework;

import java.awt.event.ActionListener;
import java.beans.EventHandler;
import java.util.ResourceBundle;
import java.util.MissingResourceException;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;

public class ResourceFactory
{
   public ResourceFactory(ResourceBundle bundle)
   {
      this.bundle = bundle;
   }

   public ResourceBundle getBundle()
   {
      return bundle;
   }

   public JMenuItem createMenuItem(String prefix, 
      Object target, String methodName)
   {
      return createMenuItem(prefix,
         (ActionListener) EventHandler.create(
            ActionListener.class, target, methodName));
   }

   public JMenuItem createMenuItem(String prefix, 
      ActionListener listener)
   {
      String text = bundle.getString(prefix + ".text");
      JMenuItem menuItem = new JMenuItem(text);
      return configure(menuItem, prefix, listener);
   }

   public JMenuItem createCheckBoxMenuItem(String prefix, 
      ActionListener listener)
   {
      String text = bundle.getString(prefix + ".text");
      JMenuItem menuItem = new JCheckBoxMenuItem(text);
      return configure(menuItem, prefix, listener);
   }

   public JMenuItem configure(JMenuItem menuItem, 
      String prefix, ActionListener listener)
   {      
      menuItem.addActionListener(listener);
      try
      {
         String mnemonic = bundle.getString(prefix + ".mnemonic");
         menuItem.setMnemonic(mnemonic.charAt(0));
      }
      catch (MissingResourceException exception)
      {
         // ok not to set mnemonic
      }

      try
      {
         String accelerator = bundle.getString(prefix + ".accelerator");
         menuItem.setAccelerator(KeyStroke.getKeyStroke(accelerator));
      }
      catch (MissingResourceException exception)
      {
         // ok not to set accelerator
      }

      try
      {
         String tooltip = bundle.getString(prefix + ".tooltip");
         menuItem.setToolTipText(tooltip);         
      }
      catch (MissingResourceException exception)
      {
         // ok not to set tooltip
      }
      return menuItem;
   }
   
   public JMenu createMenu(String prefix)
   {
      String text = bundle.getString(prefix + ".text");
      JMenu menu = new JMenu(text);
      try
      {
         String mnemonic = bundle.getString(prefix + ".mnemonic");
         menu.setMnemonic(mnemonic.charAt(0));
      }
      catch (MissingResourceException exception)
      {
         // ok not to set mnemonic
      }

      try
      {
         String tooltip = bundle.getString(prefix + ".tooltip");
         menu.setToolTipText(tooltip);         
      }
      catch (MissingResourceException exception)
      {
         // ok not to set tooltip
      }
      return menu;
   }
      
   public JButton createButton(String prefix)
   {
      String text = bundle.getString(prefix + ".text");
      JButton button = new JButton(text);
      try
      {
         String mnemonic = bundle.getString(prefix + ".mnemonic");
         button.setMnemonic(mnemonic.charAt(0));
      }
      catch (MissingResourceException exception)
      {
         // ok not to set mnemonic
      }

      try
      {
         String tooltip = bundle.getString(prefix + ".tooltip");
         button.setToolTipText(tooltip);         
      }
      catch (MissingResourceException exception)
      {
         // ok not to set tooltip
      }
      return button;
   }
   
   
   public Action configureAction(String prefix, Action action)
   {
      try
      {
         String text = bundle.getString(prefix + ".text");
         action.putValue(Action.NAME, text);
      }
      catch (MissingResourceException exception)
      {
         // ok not to set name
      }

      try
      {
         String mnemonic = bundle.getString(prefix + ".mnemonic");
         action.putValue(Action.MNEMONIC_KEY, new Integer(mnemonic.charAt(0)));
      }
      catch (MissingResourceException exception)
      {
         // ok not to set mnemonic
      }

      try
      {
         String accelerator = bundle.getString(prefix + ".accelerator");
         action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(accelerator));
      }
      catch (MissingResourceException exception)
      {
         // ok not to set accelerator
      }

      try
      {
         String tooltip = bundle.getString(prefix + ".tooltip");
         action.putValue(Action.SHORT_DESCRIPTION, tooltip);         
      }
      catch (MissingResourceException exception)
      {
         // ok not to set tooltip
      }
      return action;
   }

   private ResourceBundle bundle;
}

⌨️ 快捷键说明

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