
package denglujiemian;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import javax.swing.*;public class LoginHandler extends KeyAdapter implements ActionListener{private LoginView loginView;public LoginHandler(LoginView loginView) {this.loginView=loginView;}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubJButton jButton =(JButton)e.getSource();String text=jButton.getText();if("重置".equals(text)) {loginView.getUserTxt().setText("");loginView.getPwdField().setText("");}else if("登录".equals(text)) {login();}}private void login() {String user=loginView.getUserTxt().getText();char[] chars=loginView.getPwdField().getPassword();String pwd=new String(chars);System.out.println(user +":"+pwd);//查询dbboolean flag=false;if(flag) {}else {JOptionPane.showMessageDialog(loginView, "用户名密码错误!");}}@Overridepublic void keyPressed(KeyEvent e) {// TODO Auto-generated method stubif(KeyEvent.VK_ENTER==e.getKeyCode()) {login();}}}
package denglujiemian;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class LoginView extends JFrame {
JLabel nameLabel = new JLabel("登陆界面",JLabel.CENTER);
SpringLayout springLayout= new SpringLayout();
JPanel centerPanel =new JPanel(springLayout);
JLabel userNameLabel=new JLabel("用户名:");
JTextField userTxt=new JTextField();
JLabel pwdLabel=new JLabel("密码:");
JPasswordField pwdField= new JPasswordField();
JButton loginBtn= new JButton("登录");
JButton resetBtn=new JButton("重置");
SystemTray systemTray;
TrayIcon trayIcon;
LoginHandler loginHandler;
public LoginView() {
super("Java学生管理");
loginHandler=new LoginHandler(this);
Container contentPane =getContentPane();
nameLabel.setFont(new Font("华文行楷",Font.PLAIN,40));
nameLabel.setPreferredSize(new Dimension (0,80));
Font centerFont= new Font("楷体",Font.PLAIN,20);
userNameLabel.setFont(centerFont);
userTxt.setPreferredSize(new Dimension(200,30));
pwdLabel.setFont(centerFont);
pwdField.setPreferredSize(new Dimension (200,30));
loginBtn.setFont(centerFont);
resetBtn.setFont(centerFont);
//把组件加入面板
centerPanel.add(userNameLabel);
centerPanel.add(userTxt);
centerPanel.add(pwdLabel);
centerPanel.add(pwdField);
loginBtn.addActionListener(loginHandler);
//增加按键事件
loginBtn.addKeyListener(loginHandler);
centerPanel.add(loginBtn);
resetBtn.addActionListener(loginHandler);
centerPanel.add(resetBtn);
//弹簧布局
//布局userNameLabel
Spring childWidth=Spring.sum(Spring.sum(Spring.width(userNameLabel), Spring.width(userTxt)),Spring.constant(20));
int offsetX=childWidth.getValue()/2;
springLayout.putConstraint(SpringLayout.WEST, userNameLabel, -offsetX, SpringLayout.HORIZONTAL_CENTER, centerPanel);
springLayout.putConstraint(SpringLayout.NORTH, userNameLabel, 20, SpringLayout.NORTH, centerPanel);
//userTxt
springLayout.putConstraint(SpringLayout.WEST, userTxt, 20, SpringLayout.EAST, userNameLabel);
springLayout.putConstraint(SpringLayout.NORTH, userTxt, 0, SpringLayout.NORTH, userNameLabel);
//pwdLabel
springLayout.putConstraint(SpringLayout.EAST, pwdLabel, 0, SpringLayout.EAST, userNameLabel);
springLayout.putConstraint(SpringLayout.NORTH, pwdLabel, 20, SpringLayout.SOUTH,userNameLabel);
//pwdField
springLayout.putConstraint(SpringLayout.WEST,pwdField, 20, SpringLayout.EAST, pwdLabel);
springLayout.putConstraint(SpringLayout.NORTH, pwdField, 0, SpringLayout.NORTH, pwdLabel);
//LoginBtn
springLayout.putConstraint(SpringLayout.WEST, loginBtn, 50, SpringLayout.WEST, pwdLabel);
springLayout.putConstraint(SpringLayout.NORTH, loginBtn, 20, SpringLayout.SOUTH, pwdLabel);
//resetBtn
springLayout.putConstraint(SpringLayout.WEST, resetBtn, 90, SpringLayout.EAST, loginBtn);
springLayout.putConstraint(SpringLayout.NORTH, resetBtn, 0, SpringLayout.NORTH,loginBtn);
contentPane.add(nameLabel,BorderLayout.NORTH);
contentPane.add(centerPanel,BorderLayout.CENTER);
if(SystemTray.isSupported()) {
systemTray=SystemTray.getSystemTray();
Toolkit toolkit=Toolkit.getDefaultToolkit();
Image icon = toolkit.getDefaultToolkit().getImage("F:\\素材\\Taki-11.14-星河尽明意 万般皆是你素材包\\宇航员.png");
trayIcon=new TrayIcon(new ImageIcon(icon).getImage());
//设置托盘图标自动缩放
trayIcon.setImageAutoSize(true);
try{systemTray.add(trayIcon);
}catch(AWTException e) {
e.printStackTrace();
}
//增加最小化时销毁资源
this.addWindowListener(new WindowAdapter() {
@Override
public void windowIconified(WindowEvent e) {
LoginView.this.dispose();
}
});
trayIcon.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int clickCount=e.getClickCount();
if(clickCount==1) {
LoginView.this.setExtendedState(JFrame.NORMAL);
}
LoginView.this.setVisible(true);
}
});
}
//设置loginBtn为默认按钮
getRootPane().setDefaultButton(loginBtn);//即可按回车确定登录
//自定义图标
Toolkit toolkit=Toolkit.getDefaultToolkit();
Image icon = toolkit.getDefaultToolkit().getImage("F:\\\\素材\\\\Taki-11.14-星河尽明意 万般皆是你素材包\\\\猫.png");
setIconImage(icon);
setSize(600,400);//大小
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭退出程序
setVisible(true);
}
public static void main(String[] args) {
new LoginView();
}
public JTextField getUserTxt() {
return userTxt;
}
public JPasswordField getPwdField() {
return pwdField;
}
}
增加了按钮事件




