GUI(简单的登录界面)与JFrame(组成用运)

JFrame是由这么几部分组成:最底下一层JRootPane,上面是glassPane(一个JPanel)和layeredPane(一个JLayeredPane),而layeredPane又由contentPane(一个JPanel)和menuBar(用来方些菜单之类的)构成。
我们一般在JFrame上添加组件往往都是加在contentPane上面:下面会使用一个背景案例来说明。

1 //设置一个label,用来放背景图片
2         JLabel lalBack=new JLabel(new ImageIcon("images/qwe.jpg"));
3         lalBack.setBounds(0, 0, 400, 300);        
4         this.getLayeredPane().add(lalBack, new Integer(Integer.MIN_VALUE));
5         ((JPanel)getContentPane()).setOpaque(false); 

 

一个LoginFrame类用来放一些简单的组建,

  1 package com.sxt.test;
  2 
  3 import java.awt.Dimension;
  4 import java.awt.Toolkit;
  5 import java.awt.event.ActionEvent;
  6 import java.awt.event.ActionListener;
  7 import java.awt.event.MouseAdapter;
  8 import java.awt.event.MouseEvent;
  9 import java.awt.event.WindowAdapter;
 10 import java.awt.event.WindowEvent;
 11 import java.text.SimpleDateFormat;
 12 import java.util.Date;
 13 
 14 import javax.swing.ImageIcon;
 15 import javax.swing.JButton;
 16 import javax.swing.JFrame;
 17 import javax.swing.JLabel;
 18 import javax.swing.JPanel;
 19 import javax.swing.JPasswordField;
 20 import javax.swing.JTextField;
 21 import javax.xml.crypto.Data;
 22 
 23 public class LoginFrame extends JFrame {
 24     private Dimension screenSize;//获取屏幕的分辨率
 25     private MyActionLister myActionLister;
 26     private JTextField txtName;//用户名框
 27     private JPasswordField txtPassword;//密码框
 28     public LoginFrame() {
 29 
 30         // super("学生管理系统");
 31         this.myActionLister = new MyActionLister(this);
 32         this.setLayout(null);
 33         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 34         this.screenSize = Toolkit.getDefaultToolkit().getScreenSize();
 35         int x = (screenSize.width - 500) / 2;
 36         int y = (screenSize.height - 300) / 2;
 37         this.setBounds(x, y, 400, 300);
 38 
 39         //设置一个label,用来放背景图片
 40         JLabel lalBack=new JLabel(new ImageIcon("images/qwe.jpg"));
 41         lalBack.setBounds(0, 0, 400, 300);        
 42         this.getLayeredPane().add(lalBack, new Integer(Integer.MIN_VALUE));
 43         ((JPanel)getContentPane()).setOpaque(false); 
 44         
 45         this.addWindowListener(new WindowAdapter() {
 46 
 47             @Override
 48             public void windowOpened(WindowEvent e) {
 49                 Date data = new Date();
 50                 SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
 51                         "yyyy年MM月dd日hh:mm:ss");
 52                 String str = simpleDateFormat.format(data);
 53                 LoginFrame.this.setTitle(str);
 54             }
 55         });
 56         // lal姓名
 57         JLabel lalName = new JLabel("姓名:");
 58         lalName.setBounds(50, 50, 80, 25);
 59         this.getContentPane().add(lalName);
 60 
 61         // txt姓名
 62         txtName = new JTextField(20);
 63         txtName.setBounds(150, 50, 120, 25);
 64         this.getContentPane().add(txtName);
 65 
 66         // lal密码
 67         JLabel lalPassword = new JLabel("密码:");
 68         lalPassword.setBounds(50, 100, 80, 25);
 69         this.getContentPane().add(lalPassword);
 70 
 71         // txt密码
 72         txtPassword = new JPasswordField(20);
 73         txtPassword.setBounds(150, 100, 120, 25);
 74         this.getContentPane().add(txtPassword);
 75 
 76         // btn提交
 77         JButton btnLogin = new JButton("提交");
 78         btnLogin.setBounds(100, 150, 80, 20);
 79         btnLogin.addActionListener(this.myActionLister);
 80         btnLogin.setActionCommand("login");
 81         this.getContentPane().add(btnLogin);
 82 
 83         // btn取消
 84         JButton btnCancel = new JButton("取消");
 85         btnCancel.setBounds(200, 150, 80, 20);
 86         btnCancel.addActionListener(this.myActionLister);
 87         btnCancel.setActionCommand("exit");
 88         this.getContentPane().add(btnCancel);
 89 
 90         //this.addMouseListener(new MouseAdapter() {
 91 
 92         //    @Override
 93         //    public void mouseEntered(MouseEvent e) {
 94         //        int x = e.getX();
 95             //    int y = e.getY();
 96                 //txtName.setText("x:" + x + "y:" + y);
 97         //    }
 98 
 99     //    });
100         this.setVisible(true);
101     }
102     public JTextField getTxtName() {
103         return txtName;
104     }
105     public JPasswordField getTxtPassword() {
106         return txtPassword;
107     }
108     
109 
110 }

做一个MyActionLister类继承ActionListener用来判断按钮事件与用户的输入信息(以下有两种判断方法)

 1 package com.sxt.test;
 2 
 3 import java.awt.event.ActionEvent;
 4 import java.awt.event.ActionListener;
 5 
 6 import javax.swing.Icon;
 7 import javax.swing.ImageIcon;
 8 import javax.swing.JButton;
 9 import javax.swing.JOptionPane;
10 
11 public class MyActionLister implements ActionListener {
12     private LoginFrame loginFrame;//连接对象
13     private String name;//存储name
14     private String passWord;//存储password
15     
16     //构造方法使两个对象连接
17     public MyActionLister(LoginFrame loginFrame) {
18         this.loginFrame=loginFrame;
19     }
20 
21     @Override
22     public void actionPerformed(ActionEvent e) {
23         this.name=this.loginFrame.getTxtName().getText();//获得name
24         char[]pwd=this.loginFrame.getTxtPassword().getPassword();
25         //this.passWord=this.loginFrame.getTxtPassword().getPassword().toString();//直接加密
26         this.passWord=new String(pwd, 0, pwd.length);//获得密码 没有加密
27         
28          if(e.getActionCommand().equals("login")){
29          System.out.println(this.name+this.passWord);
30          }else if(e.getActionCommand().equals("exit")){
31                 Icon icon=new ImageIcon("images/123.jpg");
32                 int count=JOptionPane.showConfirmDialog(null, "亲,你真的要离开了我?", "想死",
33                         JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE,
34                         icon);
35                 if(count==JOptionPane.YES_OPTION){
36                     System.exit(0);
37                 }else{
38                     System.out.println("退出!!!");
39                 }
40             }
41         //JButton btnAction = (JButton) e.getSource();
42         //if (btnAction.getText().equals("提交")) {
43         //    System.out.println("login");
44         //} else if (btnAction.getText().equals("取消")) {
45         //    Icon icon=new ImageIcon("images/123.jpg");
46         //    int count=JOptionPane.showConfirmDialog(null, "亲,你真的要离开了我?", "想死",
47         //            JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE,
48         //            icon);
49         //    if(count==JOptionPane.YES_OPTION){
50         //        System.exit(0);
51         //    }else{
52         //        System.out.println("退出!!!");
53         //    }
54         //}
55 
56     }
57 
58 }
posted @ 2014-04-13 15:15  场者  阅读(1051)  评论(0编辑  收藏  举报