📄 mainframe.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 + -