📄 mainframefactory.java
字号:
package view.com.factory;
import java.awt.Container;
import java.util.HashMap;
import javax.swing.JFrame;
/**
*
* @author linfeng
* 框架工厂模式
*/
public class MainFrameFactory {
/**
* factory
* map
* name
*/
private static MainFrameFactory factory;
private static HashMap map = new HashMap();
private static String name;
/**
* 构造函数私有
*/
private MainFrameFactory() {
map.put("登录", "view.frame.MainFrame");
}
/**
* 工厂模式单例化
* @param nam 对应的名字
* @return factory 返回一个工厂
*/
public static MainFrameFactory getInstance(String nam) {
if (factory == null) {
factory = new MainFrameFactory();
}
name = nam;
return factory;
}
/**
* 对象实例化
* @return frame 框架
*/
public JFrame getContainer() {
JFrame frame = null;
if (map.containsKey(name)) {
try {
// System.out.println("name factory:= " + name);
// System.out.println("(String) map.get(name)" + (String)
// map.get(name));
frame = (JFrame) Class.forName((String) map.get(name)).newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
return frame;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -