Java语⾔做⼀个简单的登陆界⾯实现⽤户名和密码的登陆以及界⾯之间的跳转登陆界⾯的构想
在做登陆界⾯之前⾸先肯定是要对界⾯的进⾏布局构想,想这个界⾯到底有哪些元素构成,就拿下⾯的图来说吧
从这张图⽚中我们可以知道这登陆界⾯的组成需要到⽤户名和密码两个Jlabel标签和⼀个JTextField⽂本框和JPasswordField的密码框以及三个JButton按钮,最后将这些元素添加到container这个容器中。
java swing组件中的Jlabel、JTextField、JPasswordField以及JButton⼀些基本属性
JLabel
get/setText(): 获取/设置标签的⽂本。
get/seticon(): 获取/设置标签的图⽚。
get/setHorizontalAlignment(): 获取/设置⽂本的⽔平位置。
get/setVerticalAlignment(): 获取/设置⽂本的垂直位置。
get/setDisplayedMnemonic(): 获取/设置标签的访问键(下划线⽂字)。
get/setLableFor(): 获取/设置这个标签附着的组件,所以当⽤户按下 Alt+访问键时,焦点转移到指定的组件。
JButton
get/setText(): 获取/设置标签的⽂本。
get/seticon(): 获取/设置标签的图⽚。
get/setHorizontalAlignment(): 获取/设置⽂本的⽔平位置。
get/setVerticalAlignment(): 获取/设置⽂本的垂直位置。
get/setDisplayedMnemonic(): 获取/设置访问键(下划线字符),与 Alt 按钮组合时,造成按钮单击。
JButton 上的状态(活动/不活动、选中/没选中、⿏标经过/⿏标离开、按下/没按下,等等)⽅法
get/setDisabledIcon()
get/setDisableSelectedIcon()
get/setIcon()
get/setPressedIcon()
get/setRolloverIcon()
get/setRolloverSelectedIcon()
get/setSelectedIcon()
JTextField —— 基本⽂本组件,局限在⼀个⽂本中
get/setText():⽤于获取/设置 JTextField 中的⽂本
JTextArea —— ⽀持多⾏⽂本
is/setLineWrap():设置在⾏过长的时候是否要⾃动换⾏。
is/setWrapStyleWord():设置在单词过长的时候是否要把长单词移到下⼀⾏。
JPasswordField —— 密码输⼊
get/setEchoChar():获取/设置每次字符输⼊时在 JPasswordField 中显⽰的字符。在获取⼝令时,不会返回“回声”,⽽是返回实际的字符。
getText():不应当使⽤这个函数,因为它会带来可能的安全问题(String 会保存在内存中,可能的堆栈转储会暴露⼝令)。
getPassword():这是从 JPasswordField 中获得⼝令的恰当⽅法,因为它返回⼀个包含⼝令的 char[]。为了保证恰当的安全性,数组应当被清为 0,以确保它不会保留在内存中。
JFrame —— 相当于⼀个容器,可以把其他组件放在其中展现给⽤户
get/setTitle(): 获取/设置该容器的标题。
javaswing酷炫界面get/setState(): 获取/设置该容器的最⼩化、最⼤化等状态。
is/setVisible(): 获取/设置该容器的可视状态,换句话说,是否在屏幕上显⽰。
get/setLocation(): 获取/设置该容器在屏幕上应当出现的位置。
get/setsize(): 获取/设置该容器的⼤⼩。
add(): 将组件添加到该容器中。
equals()的⽤法:
1、“==”⽐较两个变量本⾝的值,即两个对象在内存中的⾸地址。
(java中,对象的⾸地址是它在内存中存放的起始地址,它后⾯的地址是⽤来存放它所包含的各个属性的地址,所以内存中会⽤多个内存块来存放对象的各个参数,⽽通过这个⾸地址就可以到该对象,进⽽可以到该对象的各个属性)
2、“equals()”⽐较字符串中所包含的内容是否相同。
⽐如:
1
String s1,s2,s3 = "abc", s4 ="abc" ;
s1 = new String("abc");
s2 = new String("abc");
s1==s2  是 false      //两个变量的内存地址不⼀样,也就是说它们指向的对象不⼀样,
s1.equals(s2) 是 true    //两个变量的所包含的内容是abc,故相等。
2
class Value
{
int i;
}
public class EqualsMethod2 {
public static void main(String[] args) {
Value v1 = new Value();
Value v2 = new Value();
v1.i = v2.i = 100;
System.out.println(v1.equals(v2));//(1)flase
System.out.println(v1 == v2);//(2)true
}
}
代码的实现
package mk1;
import java.awt.*;//导⼊awt包
import javax.swing.*;//导⼊swing包
import java.awt.event.ActionListener;//导⼊awt包中的事件包
import java.awt.event.ActionEvent;//导⼊awt包中的ActionEvent事件包
public class denglu extends JFrame {
public denglu() {
setSize(300,290);//设计窗体的⼤⼩
JLabel a=new JLabel("⽤户名"); //实例化JLabel对象
JLabel b=new JLabel("密码");
JTextField c=new JTextField(15);//实例化⽤户名⽂本框
JPasswordField d=new JPasswordField(15);//实例化密码框
d.setEchoChar('*');//将输⼊密码框中的密码以*显⽰出来
JButton e=new JButton("确定");
JButton f=new JButton("重置");
JButton g=new JButton("注册");
setVisible(true);//使窗体可视化
Container mk=getContentPane();//获取⼀个容器
//  将⽤户名、密码的Jlabel和⽤户名JTextField⽂本框、密码JPasswordField密码框以及确定JButton、重置JButton、注册JButton添加到container容器⾥⾯                  //
mk.add(a);
mk.add(b);
mk.add(c);
mk.add(d);
mk.add(e);
mk.add(f);
mk.add(g);
setBounds(300,300,300,290);//设置窗体的长宽各为300、300  让其显⽰在左上⽅的300、300处
mk.setLayout(null);
//  a、b、c、d、e、f、g显⽰在container容器中的位置坐标
a.setBounds(10,40,50,18);
b.setBounds(10,80,50,18);
c.setBounds(60,40,200,18);
d.setBounds(60,80,200,18);
e.setBounds(110,180,60,30);
f.setBounds(30,180,60,30);
g.setBounds(190,180,60,30);
f.addActionListener(new ActionListener() {//对重置按钮添加监听事件
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
c.setText("");//对⽤户名⽂本框进⾏重置
d.setText("");//对密码⽂本框进⾏重置
}
});
e.addActionListener(new ActionListener() {//对确定按钮添加监听事件
@SuppressWarnings("deprecation")
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
Text().trim().equals("mk")&&new Password()).equals("123456")) {//equals函数进⾏⽤户名和密码的匹配
JOptionPane.showMessageDialog(null,"登录成功");
new NewFrame();//进⼊到NewFrame这个窗体中
}else {
JOptionPane.showMessageDialog(null, "登录失败");
}
}
});
g.addActionListener(new ActionListener(){//对注册按钮添加监听事件
@SuppressWarnings("deprecation")
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
new zhuce();//进⼊都到zhuce窗体中
}
});
}
public static void main(String[] args) {
new denglu();
}
}
NewFrame窗体
package mk1;
import javax.swing.*;
import java.awt.*;
public class NewFrame extends JFrame { NewFrame(){
this.setBounds(100,100,500,400);
this.setTitle("欢迎来到新窗⼝");
Container s= getContentPane();
JLabel t=new JLabel("NewFrame");
s.add(t);
this.setAlwaysOnTop(true);
this.setVisible(true);
}
}
注册窗体
package mk1;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.*;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class zhuce extends JFrame {
public zhuce() {
setSize(300,250);
JLabel a=new JLabel("⽤户名");
JLabel b=new JLabel("密码");
JLabel D1=new JLabel("再次确认密码");
JTextField c=new JTextField(15);
JPasswordField d=new JPasswordField(15);
//  JPasswordField D=new JPasswordField(15);
d.setEchoChar('.');
//  D.setEchoChar('.');
JButton e=new JButton("确定");
JButton f=new JButton("重置");
JButton g=new JButton("返回");
setVisible(true);
Container mk=getContentPane();
mk.add(a);
mk.add(b);
mk.add(c);
mk.add(d);
mk.add(e);
mk.add(f);
mk.add(g);
//  mk.add(D);
setBounds(300,250,300,250);
mk.setLayout(null);
a.setBounds(10,40,50,18);
b.setBounds(10,80,50,18);
c.setBounds(60,40,200,18);
d.setBounds(60,80,200,18);
e.setBounds(110,120,60,30);
f.setBounds(30,120,60,30);
g.setBounds(190,120,60,30);
g.addActionListener(new ActionListener(){
@SuppressWarnings("deprecation")
@Override
public void actionPerformed(ActionEvent arg0) {    // TODO Auto-generated method stub
new denglu();
}
});
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。