大二java课的结课的项目,自己完全从0开始摸索swing、jframe这些的使用,结果当时还是挺满意的。
(那时候也还没有功能和界面分开来的意识,功能全部和界面写在一起了……对于异常的捕获也做得不好,当时请不学计算机的室友来试用了一下,一输入就报错x)
时间:2020-12
部分代码
登录界面
package view;
import javax.swing.*;
import javax.swing.plaf.FontUIResource;
import dataConnect.DataBase;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.peer.LightweightPeer;
import java.sql.ResultSet;
import java.util.Enumeration;
public class LoginView extends JFrame implements ActionListener {
JTextField nameField=null;
JPasswordField passField=null;
String valuesString=null;
JComboBox<String> pmsionBox=null;
public static void main(String[] args) {
LoginView loginView=new LoginView();
}
//登录主界面
public LoginView()
{ JButton enterButton,exitButton=null;
JLabel nameLabel,passLabel,picLabel=null;
InitGlobalFont(new Font("微软雅黑", Font.PLAIN, 20));//全局字体设置
nameLabel=new JLabel("用户名:");
passLabel=new JLabel("密 码:");
nameField=new JTextField(10);
passField=new JPasswordField(15);
enterButton=new JButton("登录");
exitButton=new JButton("退出");
String[] pmsStrings={"用户","管理员"};//登录角色选择
pmsionBox=new JComboBox<String>(pmsStrings);
picLabel=new JLabel(new ImageIcon("src/pictures/汽车.png"));
//监听
enterButton.addActionListener(this);
exitButton.addActionListener(this);
//布局
JPanel p1,p2,p3,p4,p5=null;
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
p4=new JPanel();
p5=new JPanel(new GridLayout(3,1));
this.setLayout(new BorderLayout());
this.add(p5,BorderLayout.CENTER);
picLabel.setBounds(0, 400, 300, 400);
p4.add(picLabel);
this.add(p4,BorderLayout.NORTH);
p5.add(p1);
p5.add(p2);
p5.add(p3);
p1.add(nameLabel);
p1.add(nameField);
p1.add(pmsionBox);
p2.add(passLabel);
p2.add(passField);
p3.add(enterButton);
p3.add(exitButton);
p1.setBackground(Color.white);
p2.setBackground(Color.white);
p3.setBackground(Color.white);
p4.setBackground(Color.white);
//窗口设置
this.setTitle("汽车租赁系统");
this.setIconImage(new ImageIcon("src/pictures/汽车.png").getImage());
this.setSize(700,600);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setResizable(true);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand()=="登录"){
valuesString=pmsionBox.getSelectedItem().toString();
if(valuesString.equals("用户")){
userLoginEntrance();
}else if(valuesString.equals("管理员")){
adLoginEntrance();
}
}else if(e.getActionCommand()=="退出"){
System.exit(0);
}
}
//用户登录入口
public void userLoginEntrance(){
DataBase dataBase=new DataBase();
if(dataBase.searchEnter(nameField.getText(), passField.getText(), "userIform")){
dataBase.noReturnFunction("UPDATE userIform SET state=1 WHERE user_name=\'"+nameField.getText().trim()+"\'");
nameField.setText("");
passField.setText("");
dispose();
MainView mainView=new MainView();
}else{
System.out.println(nameField.getText()+passField.getText());
JOptionPane.showMessageDialog(null," 用户名或者密码错误!\n请重新输入","提示消息",JOptionPane.ERROR_MESSAGE);
}
}
//欸嘿我代码没给全 git仓库在最后(转身)(潇洒离去)
主界面
package view;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import dataConnect.DataBase;
public class MainView extends JFrame implements ActionListener{
JButton rentButton,searchButton,fixButton,returnButton=null;
private javax.swing.Timer timer;
private JLabel timeLabel;
//主界面
public MainView(){
searchButton=new JButton("汽车查询");
rentButton=new JButton("汽车租赁");
returnButton=new JButton("汽车归还");
fixButton=new JButton("用户信息查询");
timeLabel=new JLabel();
//监听
searchButton.addActionListener(this);
rentButton.addActionListener(this);
returnButton.addActionListener(this);
fixButton.addActionListener(this);
this.addWindowListener(new LoginWindowClose());
//布局
JPanel p1,p2,p3;
JLabel title;
p1=new JPanel();
p2=new JPanel(new GridLayout(4,1));
p3=new JPanel();
title=new JLabel("汽车租赁系统");
title.setFont(new Font("隶书",Font.BOLD, 60));
this.setLayout(new BorderLayout());
this.add(p1,BorderLayout.NORTH);
this.add(p2,BorderLayout.CENTER);
this.add(p3,BorderLayout.SOUTH);
p1.add(title);
p2.add(rentButton);
rentButton.setBounds(0, 0, 100, 100);
p2.add(searchButton);
p2.add(returnButton);
p2.add(fixButton);
p3.add(timeLabel);
timer=new javax.swing.Timer(500, new ActionListener(){//时间显示
@Override
public void actionPerformed(ActionEvent arg0) {
timeLabel.setText(new SimpleDateFormat("yyyy年MM月dd日 EEEE hh:mm:ss").format(new Date()));
}
});
timer.start();
//窗口设置
this.setTitle("欢迎使用汽车租赁系统!");
this.setIconImage(new ImageIcon("src/pictures/汽车.png").getImage());
this.setSize(900,600);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置当关闭窗口时,保证JVM也退出
this.setVisible(true);
this.setResizable(true);
}
//完整代码自己去git下载!别想着直接复制粘贴!(指指点点
}
运行效果
登录
用户端
用户登录
汽车租赁
汽车查询
汽车归还
用户信息查询
管理员端
管理员登录
汽车更新
别的功能懒得截图了 大家凑合看
如果有帮助到还请git上留个star~⭐