暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Java窗体构建学习(4)

薏粒 2021-12-09
390


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;
 }


 @Override
 public void actionPerformed(ActionEvent e) {
   // TODO Auto-generated method stub
   JButton 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);
   //查询db
   boolean flag=false;
   if(flag) {
     
   }else {
     JOptionPane.showMessageDialog(loginView, "用户名密码错误!");
     
   }
 }


 @Override
 public void keyPressed(KeyEvent e) {
   // TODO Auto-generated method stub
 if(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;

}


}

增加了按钮事件


文章转载自薏粒,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论