1. 程式人生 > >適合中職學生學生管理系統的研發(java+jdbc+mysql)(一)

適合中職學生學生管理系統的研發(java+jdbc+mysql)(一)

中職學生從學生主動性來講幾乎沒有,基礎差,在學習java的過程中,大部分學生是懶作的.所有研發一套適合中職學生的管理系統.

首先登陸介面此係統所有的介面都是用java的swing寫的

這裡面因為登陸與登陸邏輯相分離(採用的是介面回撥,這個是難點,多型知識一定要紮實,否則理解上可能存在問題)

public class LoginLayout extends JFrame {
    //登入的使用者名稱和密碼
    private String userName;
    private String password;
    //宣告螢幕的寬高,程式視窗的寬高
    private int windowWidth;
    private int windowHeight;
    private int screenSizeWidth;
    private int screenSizeHeight;
    //定義介面實現介面介面與邏輯分離(這個地方是個難點,因為用到多型的知識)
    private LoginPresent  loginPresent;


    //建構函式,
    public LoginLayout(String title, String userName, String password,LoginPresent  loginPresent) {
        super(title);   //設定標題
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    //設定能關閉視窗
        this.setSize(600, 600);     //設定視窗的大小
        this.setLayout(null);       //設定程式預設佈局格式為空,以便於後期自己簡單的設定佈局
        this.setResizable(false);   //設定不可縮放
        init();                     //執行初始化函式(將使用者名稱密碼等元件加入到面板中)
        this.setVisible(true);      //使程式可見
        this.userName = userName;
        this.password = password;
        this.loginPresent=loginPresent;


    }

    public void init() {
        //給螢幕的寬度高度,程式視窗的寬度高度賦值
        Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
        screenSizeWidth = (int) dimension.getWidth();
        screenSizeHeight = (int) dimension.getHeight();
        windowWidth = this.getWidth();
        windowHeight = this.getHeight();
        //設定程式視窗的位置為螢幕的正中央
        this.setLocation(screenSizeWidth / 2 - windowWidth / 2,
                screenSizeHeight / 2 - windowHeight / 2);

        // 宣告姓名,密碼的標籤
        JLabel username_label = new JLabel("姓名");
        JLabel password_label = new JLabel("密碼");
        // 宣告姓名輸入框和密碼輸入框
        final JTextField user_field = new JTextField();
        final JPasswordField password_field = new JPasswordField();
        //宣告登入按鈕
        JButton login_btn = new JButton("登入");

        //設定各個標籤和輸入框的大小和位置
        username_label.setBounds(150, 100, 100, 50);
        password_label.setBounds(150, 200, 100, 50);
        user_field.setBounds(200, 100, 300, 50);
        password_field.setBounds(200, 200, 300, 50);
        login_btn.setBounds(300, 300, 100, 50);

        this.add(username_label);
        this.add(password_label);
        this.add(user_field);
        this.add(password_field);
        this.add(login_btn);

        //登入按鈕的監聽器
        login_btn.addActionListener(new ActionListener() {
            @SuppressWarnings("deprecation")
            @Override
        //當按鈕被單擊時自動調動這個方法
            public void actionPerformed(ActionEvent event) {
        //如果使用者名稱和密碼都是123,那麼彈出對話方塊顯示登入成功,並且開啟另一個主框架(主頁)
                if (user_field.getText().equals(userName)
                        && password_field.getText().equals(password)) {
                    JOptionPane.showMessageDialog(null, "登入成功", "Login",
                            JOptionPane.INFORMATION_MESSAGE);

                    //介面回撥
                    loginPresent.success();


                    setVisible(false);//登入頁面隱藏
                } else      //反之,登入不成功,重新登入
                {
                    JOptionPane.showMessageDialog(null, "登入失敗,請重新登入", "Login",
                            JOptionPane.INFORMATION_MESSAGE);
                    //設定輸入框的內容為空,讓使用者重新輸入
                    user_field.setText("");
                    password_field.setText("");
                }
            }
        });

    }
}
public interface LoginPresent {

    //登入成功的方法
    public void  success();

}