I have been studying Java for more than a year and have been practicing web. I found that I needed to use GUI related knowledge in a project, but I couldn't do it. There were not many articles on this online, so I had to bite the bullet and learn it from scratch. However, after learning, I found that the GUI is actually very interesting. It does not rely on the Internet like WEB programs, and there are many layouts that are not very different from Android. Then I found that I fell in love with GUI development again. I won't say much, just add the code. I believe that those who have developed Android or related interfaces understand the truth.
Let's see the effect first
1. Log in to the main interface
package edu.gzu.stuManager; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import java.awt.Toolkit; import javax.swing.JTextField; import edu.gzu.stuManager.Dao.UserLoginValid; import edu.gzu.stuManager.Domain.StudentInfo; import edu.gzu.stuManager.View.StudentMainView; import java.awt.Choice; import java.awt.Font; import java.awt.Button; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class MainUI { private JFrame frame; private JTextField textField; private JTextField textField_1; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { MainUI window = new MainUI(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the application. */ public MainUI() { initialize(); } /** * Initialize the contents of the frame. */ private void initialize() { frame = new JFrame(); frame.setTitle("/u6210/u7EE9/u7BA1/u7406/u7CFB/u7EDF/uFF08/u767B/u5F55/uFF09"); frame.setIconImage(Toolkit.getDefaultToolkit().getImage(MainUI.class.getResource("/image/func_list7_privmana.png"))); frame.setBounds(400, 250, 450, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(null); JLabel lblNewLabel = new JLabel("/u5B66/u751F/u6210/u7EE9/u7BA1/u7406/u7CFB/u7EDF/u7528/u6237/u767B/u5F55/uFF01"); lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 16)); lblNewLabel.setBounds(111, 17, 287, 15); frame.getContentPane().add(lblNewLabel); JLabel lblNewLabel_1 = new JLabel("/u7528/u6237/u540D/uFF1A"); lblNewLabel_1.setFont(new Font("宋体", Font.PLAIN, 14)); lblNewLabel_1.setBounds(87, 67, 67, 15); frame.getContentPane().add(lblNewLabel_1); textField = new JTextField(); textField.setBounds(154, 64, 141, 21); frame.getContentPane().add(textField); textField.setColumns(10); JLabel label = new JLabel("/u5BC6 /u7801/uFF1A"); label.setFont(new Font("宋体", Font.PLAIN, 14)); label.setBounds(87, 108, 67, 15); frame.getContentPane().add(label); textField_1 = new JTextField(); textField_1.setColumns(10); textField_1.setBounds(154, 103, 141, 21); frame.getContentPane().add(textField_1); JLabel lblNewLabel_2 = new JLabel("/u6211/u7684/u8EAB/u4EFD/u662F/uFF1A"); lblNewLabel_2.setFont(new Font("安体", Font.PLAIN, 14)); lblNewLabel_2.setBounds(105, 150, 97, 15); frame.getContentPane().add(lblNewLabel_2); final Choice choice = new Choice(); choice.setBounds(210, 147, 74, 21); choice.add("Student"); choice.add("Teacher"); choice.add("Systener"); frame.getContentPane().add(choice); Button button = new Button("/u767B/u5F55"); button.setBounds(87, 194, 76, 23); button.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { String user=textField.getText(); String password=textField_1.getText(); String shenfen=choice.getSelectedItem(); if(user.equals("")||user==null){ JOptionPane.showMessageDialog(frame, shenfen+":Hello, the account cannot be empty!"); return; }else if(password.equals("")||password==null){ JOptionPane.showMessageDialog(frame, shenfen+":Hello, the password cannot be empty!"); return; }else{ StudentInfo stu=new StudentInfo(Integer.parseInt(user), Integer.parseInt(password),shenfen); UserLoginValid dao=new UserLoginValid(); String result=dao.isValid(stu); if("Login successfully!".equals(result)){ JOptionPane.showMessageDialog(frame,result); StudentMainView index=new StudentMainView(stu); JFrame frame2=index.getFrame(); frame2.setVisible(true); frame.dispose(); }else{ JOptionPane.showMessageDialog(frame,result); } } } }); frame.getContentPane().add(button); Button button_1 = new Button("/u53D6/u6D88"); button_1.setBounds(219, 194, 76, 23); frame.getContentPane().add(button_1); } }2. Login verification logic
package edu.gzu.stuManager.Dao; import edu.gzu.stuManager.Domain.StudentInfo; public class UserLoginValid { public String isValid(StudentInfo stu){ int idnum=stu.getIdnum(); int password=stu.getPassword(); String idntify=stu.getIdentify(); String result=null; if("Student".equals(idntify)){ if(idnum==1207010209&&password==123){ stu.setName("Liu Mingsheng"); result="Login successfully!"; }else{ result="This user does not exist in the student account. Please confirm your identity and log in again!"; } }else if("Teacher".equals(idntify)){ if(idnum==1174386356&&password==123){ stu.setName("Teacher Liu Mingsheng"); result="Login successfully!"; }else{ result="This user does not exist in the teacher account. Please confirm your identity and log in again!"; } }else if("System Administrator".equals(idntify)){ if(idnum==999999&&password==123){ stu.setName("System Administrator"); result="Login successfully!"; }else{ result="This user does not exist in the system administrator account. Please confirm your identity and log in again!"; } } return result; } }3. User object (this is a simple bean)
package edu.gzu.stuManager.Domain; public class StudentInfo { private int idnum; private String name; private int password; private String identify; public StudentInfo(int idnum,int password, String identify) { super(); this.idnum = idnum; this.password = password; this.identify = identify; } public int getIdnum() { return idnum; } public void setIdnum(int idnum) { this.idnum = idnum; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPassword() { return password; } public void setPassword(int password) { this.password = password; } public String getIdentify() { return identify; } public void setIdentify(String identify) { this.identify = identify; } }4. The main interface after successful login
package edu.gzu.stuManager.View; import java.awt.Button; import java.awt.Canvas; import java.awt.Choice; import java.awt.Color; import java.awt.Toolkit; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import edu.gzu.stuManager.Domain.StudentInfo; public class StudentMainView{ private JFrame frame; private JTextField textField; private JTextField textField_1; private JTextField textField_2; private JTextField textField_3; private StudentInfo info; /** * Create the frame. * @wbp.parser.entryPoint */ public StudentMainView(StudentInfo info) { this.info=info; } public JFrame getFrame(){ initialize(); return frame; } /** * Initialize the contents of the frame. * @wbp.parser.entryPoint */ public void initialize() { frame = new JFrame(); frame.setTitle("/u6210/u7EE9/u7BA1/u7406/u7CFB/u7EDF/uFF08/u5B66/u751F/u7248/uFF09"); frame.setIconImage(Toolkit.getDefaultToolkit().getImage(StudentMainView.class.getResource("/image/func_list7_privmana.png"))); frame.setBounds(300,150, 550, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(null); JLabel lblNewLabel = new JLabel("Welcome ["+info.getName()+"] to log in to the student score management system!"); lblNewLabel.setBounds(54, 10, 322, 15); frame.getContentPane().add(lblNewLabel); JPanel panel = new JPanel(); panel.setBounds(29, 52, 250, 180); frame.getContentPane().add(panel); panel.setLayout(null); JLabel lblNewLabel_1 = new JLabel("/u6210/u7EE9/u6570/u636E"); lblNewLabel_1.setBounds(94, 10, 65, 15); panel.add(lblNewLabel_1); JLabel lblNewLabel_2 = new JLabel("/u5B66/u53F7/uFF1A"); lblNewLabel_2.setBounds(22, 37, 40, 15); panel.add(lblNewLabel_2); textField = new JTextField(); textField.setBounds(72, 35, 154, 21); textField.setText(info.getIdnum()+""); panel.add(textField); textField.setColumns(10); JLabel lblNewLabel_3 = new JLabel("/u59D3/u540D/uFF1A"); lblNewLabel_3.setBounds(22, 67, 44, 15); panel.add(lblNewLabel_3); textField_1 = new JTextField(); textField_1.setBounds(72, 66, 154, 21); textField_1.setText(info.getName()); panel.add(textField_1); textField_1.setColumns(10); Canvas canvas = new Canvas(); canvas.setBackground(Color.BLUE); canvas.setBounds(22, 100, 205, 1); panel.add(canvas); JLabel lblNewLabel_4 = new JLabel("/u8BFE/u7A0B/u540D"); lblNewLabel_4.setBounds(22, 116, 47, 15); panel.add(lblNewLabel_4); JLabel lblNewLabel_5 = new JLabel("/u6210/u7EE9"); lblNewLabel_5.setBounds(160, 116, 43, 15); panel.add(lblNewLabel_5); textField_2 = new JTextField(); textField_2.setBounds(22, 140, 123, 21); panel.add(textField_2); textField_2.setColumns(10); textField_3 = new JTextField(); textField_3.setBounds(159, 140, 66, 21); panel.add(textField_3); textField_3.setColumns(10); JPanel panel_1 = new JPanel(); panel_1.setBounds(317, 52, 110, 180); frame.getContentPane().add(panel_1); panel_1.setLayout(null); JLabel lblNewLabel_6 = new JLabel("/u64CD/u4F5C/u83DC/u5355"); lblNewLabel_6.setBounds(15, 10, 54, 15); panel_1.add(lblNewLabel_6); Button button = new Button("/u7B2C/u4E00/u95E8/u8BFE/u7A0B"); button.setBounds(10, 31, 76, 23); panel_1.add(button); Button button_1 = new Button("/u4E00/u95E8/u8BFE/u7A0B"); button_1.setBounds(10, 61, 76, 23); panel_1.add(button_1); Button button_2 = new Button("/u4E0A/u4E00/u95E8/u8BFE/u7A0B"); button_2.setActionCommand("/u4E0A/u4E00/u95E8/u8BFE/u7A0B"); button_2.setBounds(10, 90, 76, 23); panel_1.add(button_2); Button button_3 = new Button("/u6700/u540E/u4E00/u95E8/u8BFE"); button_3.setBounds(10, 117, 76, 23); panel_1.add(button_3); Choice choice = new Choice(); choice.setBounds(10, 149, 76, 21); choose.add("Select course"); choose.add("Advanced Mathematics"); choose.add("University English"); choose.add("Marxism-Leninism"); choose.add("Mao Zedong Thought"); choose.add("Computer Graphics"); choose.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { Object[] objs=e.getItemSelectable().getSelectedObjects(); for(Object ob:objs){ // JOptionPane.showMessageDialog(frame, ob.toString()); if("Advanced Mathematics".equals(ob.toString())){ textField_2.setText("Advanced Mathematics"); textField_3.setText("98"); }else if("College English".equals(ob.toString())){ textField_2.setText("College English"); textField_3.setText("87"); }else if("Marxism-Leninism".equals(ob.toString())){ textField_2.setText("Marxism-Leninism"); textField_3.setText("88"); }else if("Mao Zedong Thought".equals(ob.toString())){ textField_2.setText("Mao Zedong Thought"); textField_3.setText("73"); }else if("Computer Graphics".equals(ob.toString())){ textField_2.setText("Computer Graphics"); textField_3.setText("97"); } } } }); panel_1.add(choice); } }This will enable easy login verification. I planned to read data from the database, but due to time constraints, I will simply and directly verify it here. If I have time, I will do other parts.
The above is all the content of this article. I hope it will be helpful to everyone's learning and I hope everyone will support Wulin.com more.