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

📄 mainframe.java

📁 基于java swing的联机考试系统
💻 JAVA
字号:
package olts.presentation;
import java.awt.*;
import javax.swing.*;        

/**
 * 完成创建主画框,设置主画框位置,启动主画框(使其可见)等一系列工作
 */
public class MainFrame {
	// 布置主画框位置的变量
	private static int width = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth() / 3; 
	private static int height = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight() / 4;
	private static int startX = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth() / 3;
	private static int startY = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight() / 3;
	private static JFrame frame;
	private static JPanel contentPane;
	
	/**
	 * 使用私有的构造方法防止直接创建MainFrame对象
	 */
	private MainFrame() {}
	
	/**
	 * 间接初始化主画框
	 */
	public static void init() {
		init("联机测试系统");
	}
	
	/**
	 * 主画框间接初始化方法的重载方法,详细创建主画框,指定标题,位置,面板等等
	 * @param title 主画框标题
	 */
	public static void init(String title) {
		frame = new JFrame(title);
		frame.setLocation(new Point(startX, startY));
		contentPane = (JPanel)frame.getContentPane();
		contentPane.setPreferredSize(new Dimension(width, height));
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	/**
	 * 主画框间接初始化重载方法,调用init(String title),并设定主画框宽度、高度值
	 * @param title 主画框标题
	 * @param w 主画框宽度值
	 * @param h 主画框高度值
	 */
	public static void init(String title, int w, int h) {
		width = w;  height = h;
		init(title);
	}
	
	/**
	 * 主画框间接初始化重载方法,调用init(String title),并设定主画框坐上角位置值,宽度、高度值
	 * @param title 主画框标题
	 * @param w 主画框宽度值
	 * @param h 主画框高度值
	 * @param x 新位置左上角的 x 坐标
	 * @param y 新位置左上角的 y 坐标
	 */
	public static void init(String title, int w, int h, int x, int y) {
		startX = x;  startY = y;
		width = w;  height = h;
		init(title);
	}
	
	/**
	 * 主画框间接初始化重载方法,调用init(String title),并设定主画框坐上角位置值,宽度、高度值及几种可选感观
	 * @param title 主画框标题
	 * @param w 主画框宽度值
	 * @param h 主画框高度值
	 * @param x 新位置左上角的 x 坐标
	 * @param y 新位置左上角的 y 坐标
	 * @param lookAndFeel 主画框感观变量
	 */
	public static void init(String title, int w, int h, int x, int y, String lookAndFeel) {
		startX = x;  startY = y;
		width = w;  height = h;
		try {
			if (lookAndFeel.equalsIgnoreCase("windows"))
				UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
			else if (lookAndFeel.equalsIgnoreCase("system")) 
				UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
			else if (lookAndFeel.equalsIgnoreCase("motif"))
				UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
			else UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
		} catch (Exception e) {}
		init(title);
	}
	
	/**
	 * 添加组件到主面板CENTER方位
	 * @param c 要添加的组件
	 */
	public static void add(Component c) { contentPane.add(c, BorderLayout.CENTER); }
	
	/**
	 * 启动主画框,使其可见
	 */
	public static void start() {
		frame.pack();
		frame.setVisible(true);
	}
	
	/**
	 * 刷新主画框,使其可见
	 */
	public static void refresh(){
		contentPane.repaint();
		frame.validate();
	}
	
	/**
	 * 返回主画框面板
	 * @return 主画框面板
	 */
	public static JPanel getContentPane() { return contentPane; }
	
	/**
	 * 返回主画框
	 * @return 返回主画框
	 */
	public static JFrame getMainFrame() { return frame; }
	
	/**
	 * 返回主画框宽度
	 * @return 主画框宽度
	 */
	public static int getWidth() { return width; }
	
	/**
	 * 返回主画框高度
	 * @return 主画框高度
	 */
	public static int getHeight() { return height; }
	
	/**
	 * 返回主画框位置左上角 X 坐标
	 * @return 主画框位置左上角 X 坐标
	 */
	public static int getStartX() { return startX; }
	
	/**
	 * 返回主画框位置左上角 Y 坐标
	 * @return 主画框位置左上角 Y 坐标
	 */
	public static int getStartY() { return startY; }
}

⌨️ 快捷键说明

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