package com.tsxy.clj.login.view;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import com.tsxy.clj.login.customview.ImagePanel;
import com.tsxy.clj.mainframe.SuperMaketMainFrame;
import com.tsxy.clj.utils.MyFont;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* 登录框架
* 使用提示:
* @author clj
* riqi: 2018-3-3
*
*/
public class LoginFrame extends JFrame{
/**
* 测试的属性,没有意义
*/
int a;
/**
* 框架的宽度
*/
final int FWIDTH = 500;
/**
* 框架的高度
*/
final int FHEIGHT = 420;
/**
* 主面板
*/
ImagePanel mainPanel;
/**
* 输入用户名的文本框
*/
JTextField jtfName;
/**
* 密码框
*/
JPasswordField jpfPassword;
/**
* 提示标签
*/
JLabel jlTiShi;
/**
* 登录按钮
*/
JButton jbLogin;
/**
* 最小化按钮
*/
JButton jbMin;
/**
* 关闭按钮
*/
JButton jbClose;
/**
* 无参构造函数
*/
public LoginFrame(){
setView();
setFrame();
}
public void setView() {
//初始化主面板
mainPanel = new ImagePanel();
//setLayout函数表示设置面板的布局管理器
//null 边界布局管理器,自定义布局管理器,添加组件之前,要指明组件的位置
//指明位置用setBounds函数
mainPanel.setLayout(null);
//把主面板放到框架上
setContentPane(mainPanel);
//设置登录窗体上部的图片
// JLabel jlTop = new JLabel();
// ImageIcon icon = new ImageIcon("pic\\logo.jpg");
// //ImageIcon 对象转换为Image对象,调用其缩放的方法,再通过构造函数赋值回去
// icon = new ImageIcon(icon.getImage().getScaledInstance(500, 150, Image.SCALE_DEFAULT));
// jlTop.setIcon(icon);
// jlTop.setBounds(0, 0, 500, 150);
// mainPanel.add(jlTop);
ImageIcon icon = new ImageIcon("pic\\logo.jpg");
mainPanel.setLo(icon);
//登录头像
JLabel jlHead = new JLabel();
ImageIcon icHead = new ImageIcon("pic/head.gif");
icHead = new ImageIcon(icHead.getImage().getScaledInstance(150, 150, Image.SCALE_DEFAULT));
jlHead.setIcon(icHead);
jlHead.setBounds(20, 170, 150, 150);
mainPanel.add(jlHead);
//设置输入用户名的文本框,因为其他地方也要引用,所以设置为属性
jtfName = new JTextField("zs");
jtfName.setBounds(190, 180, 200, 40);
jtfName.setFont(MyFont.LOGINTEXTFONT);
mainPanel.add(jtfName);
//提示用户名的标签
JLabel jlName = new JLabel("用户名");
jlName.setBounds(400, 180, 60, 40);
jlName.setForeground(Color.yellow);
jlName.setFont(MyFont.LOGINLABELFONT);
mainPanel.add(jlName);
//设置密码框
jpfPassword = new JPasswordField("1");
jpfPassword.setBounds(190, 240, 200, 40);
jpfPassword.setFont(MyFont.LOGINTEXTFONT);
mainPanel.add(jpfPassword);
//提示用户名的标签
JLabel jlPassword = new JLabel("密 码");
jlPassword.setBounds(400, 240, 60, 40);
jlPassword.setForeground(new Color(0, 255, 0));
jlPassword.setFont(MyFont.LOGINLABELFONT);
mainPanel.add(jlPassword);
//设置提示标签
jlTiShi = new JLabel("请输入用户名密码");
jlTiShi.setBounds(190, 280, 300, 40);
mainPanel.add(jlTiShi);
//设置登录按钮
jbLogin = new JButton();
jbLogin.setIcon(new ImageIcon("pic/loginbutton.png"));
jbLogin.setBounds(150, 330, 180, 30);
mainPanel.add(jbLogin);
jbLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = jtfName.getText();
String passwd = new String(jpfPassword.getPassword());
//System.out.println(name+","+passwd);
//JOptionPane.showMessageDialog(null, name+","+passwd);
if(name.length()==0){
JOptionPane.showMessageDialog(null, "用户名不能为空!");
jtfName.requestFocus();
jlTiShi.setText("用户名不能为空!请输入用户名");
return;
}
if(passwd.length() == 0){
JOptionPane.showMessageDialog(null, "密码不能为空!");
jpfPassword.requestFocus();
jlTiShi.setText("密码不能为空!请输入密码");
return;
}
//将用户名、密码传到后台的操作以后补全
if (name.equals("zs")&&passwd.equals("1")) {
JOptionPane.showMessageDialog(null, "登录成功!");
//释放当前的框架所占用的资源
LoginFrame.this.dispose();
new SuperMaketMainFrame();
}else{
JOptionPane.showMessageDialog(null, "登录失败!");
}
}
});
//设置最小化按钮
jbMin = new JButton();
jbMin.setIcon(new ImageIcon("pic/min.png"));
jbMin.setBounds(410,20,30,30);
mainPanel.add(jbMin);
jbMin.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//System.out.println("点击了!!");
setExtendedState(ICONIFIED);
}
});
//设置关闭按钮
jbClose = new JButton();
jbClose.setIcon(new ImageIcon("pic/close.png"));
jbClose.setBounds(450,20,30,30);
mainPanel.add(jbClose);
jbClose.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
}
/**
* 设置为自定义布局管理器
* 添加组件之前,要指明组件的位置
*/
public void setNullLayoutPanel() {
//初始化主面板
mainPanel = new ImagePanel();
//setLayout函数表示设置面板的布局管理器
//null 边界布局管理器,自定义布局管理器,添加组件之前,要指明组件的位置
//指明位置用setBounds函数
mainPanel.setLayout(null);
//把主面板放到框架上
setContentPane(mainPanel);
JButton jb1 = new JButton("1");
jb1.setBounds(10, 10, 100, 30);
JButton jb2 = new JButton("2");
jb2.setBounds(10, 60, 200, 50);
JButton jb3 = new JButton("3");
JButton jb4 = new JButton("4");
JButton jb5 = new JButton("5");
mainPanel.add(jb1);
mainPanel.add(jb2);
mainPanel.add(jb3);
mainPanel.add(jb4);
mainPanel.add(jb5);
}
/**
* 设置为边界布局管理器
* 添加组件时,要指明添加的方位,东南西北中
*/
public void setBorderLyoutPanel() {
//初始化主面板
mainPanel = new ImagePanel();
//setLayout函数表示设置面板的布局管理器
//new BorderLayout() 边界布局管理器,添加组件时,要指明添加的方位,东南西北中
mainPanel.setLayout(new BorderLayout());
//把主面板放到框架上
setContentPane(mainPanel);
JButton jb1 = new JButton("1");
JButton jb2 = new JButton("2");
JButton jb3 = new JButton("3");
JButton jb4 = new JButton("4");
JButton jb5 = new JButton("5");
mainPanel.add(jb1,BorderLayout.WEST);
mainPanel.add(jb2,BorderLayout.EAST);
mainPanel.add(jb3,BorderLayout.NORTH);
mainPanel.add(jb4,BorderLayout.SOUTH);
mainPanel.add(jb5,BorderLayout.CENTER);
}
/**
* 面板的默认布局管理器,优先第一行居中,如果第一行
* 放不下,放入第二行。。。。
*/
public void setFlowLayoutPanel() {
//初始化主面板
mainPanel = new ImagePanel();
//setLayout函数表示设置面板的布局管理器
//new FlowLayout() 流布局管理器,也是面板的默认布局管理器
mainPanel.setLayout(new FlowLayout());
//把主面板放到框架上
setContentPane(mainPanel);
JButton jb1 = new JButton("1");
JButton jb2 = new JButton("2");
JButton jb3 = new JButton("3");
JButton jb4 = new JButton("4");
JButton jb5 = new JButton("5");
mainPanel.add(jb1);
mainPanel.add(jb2);
mainPanel.add(jb3);
mainPanel.add(jb4);
mainPanel.add(jb5);
}
/**
* 使用网格布局管理器
*/
public void setGridLayoutPanel() {
//初始化主面板
mainPanel = new ImagePanel();
//setLayout函数表示设置面板的布局管理器
//new GridLayout() 网格布局管理器,指明几行,几列
mainPanel.setLayout(new GridLayout(3, 2));
//把主面板放到框架上
setContentPane(mainPanel);
JButton jb1 = new JButton("1