主界面的寫法跟之前登錄界面的窗體寫法大致相同,在主界面中主要是窗體的大小的設置
package com.student_view;import com.utils.DimensionUtil;
import sun.applet.Main;import javax.swing.*;
import java.awt.*;
import java.net.URL;/*** @Author:xiexu* @Date:2023/12/9 10:36*/
public class MainView extends JFrame {public MainView() {super("學生成績管理系統");Container contentPane = getContentPane();URL url = MainView.class.getClassLoader().getResource("tumblr.png");setIconImage(new ImageIcon(url).getImage());
// setSize(800, 600);// 需要根據屏幕的大小,設置主界面窗口的大小:setBounds(DimensionUtil.getBounds());// 設置窗體完全充滿整個屏幕的可見大小setExtendedState(JFrame.MAXIMIZED_BOTH);setVisible(true);setLocationRelativeTo(null);setResizable(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}public static void main(String[] args) {new MainView();}
}
?
封裝一個工具類:來獲取電腦屏幕的大小
package com.utils;import javax.swing.*;
import java.awt.*;/*** @Author:xiexu* @Date:2023/12/9 10:47*/
public class DimensionUtil {public static Rectangle getBounds() {Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 獲取電腦屏幕的大小// 需要保證主界面不會覆蓋電腦屏幕的任務欄Insets screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(new JFrame().getGraphicsConfiguration());// 需要使得左右兩邊完全填充,此時也需要設置setResizable(true);Rectangle rectangle = new Rectangle(screenInsets.left, screenInsets.top,screenSize.width - screenInsets.left - screenInsets.right,screenSize.height - screenInsets.top - screenInsets.bottom);return rectangle;}
}
運行結果展示:
?
?