Java练习之equals()和"=="的区别

练习题目:

尝试开发一个登陆窗体,包括用户名、密码以及提交按钮和重置按钮,当用户输入用户名mr、密码输入mrsoft时,弹出登陆成功提示对话框。

知识点:

  1. Swing程序设计
  2. JFrame窗体:窗体是一个容器,是Swing程序中各个组件的载体,JFrame对象创建完成之后,需要调用getContentPane()方法将窗体转换为容器
  3. 标签的使用
  4. 布局管理器FlowLayout、BorderLayout、GridLayout三者之间的布局差别
  5. JPanel面板
  6. JButton提交按钮
  7. JTextField和JPasswordField
  8. 事件监听器:负责处理用户单击按钮后实现的功能


遇到的问题
在最后运行的时候,无论用户名和密码输入是否合乎要求,都会弹出用户名和密码错误的提示框

原因:在监听事件里面的if条件出错

关键:equals()和==这两种比较方式有着本质的区别,equals()方法是String类中的方法,用于比较两个对象引用所指的内容是否相等,而==运算符比较的是两个对象引用的地址是否相等。

源代码:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;


public class Login {
public void CreateJFrame(String title){
JFrame jf=new JFrame(title);//frame框架
Container container=jf.getContentPane();//获得容器
container.setLayout(new FlowLayout());
JPanel jp1=new JPanel(new FlowLayout());//面板1
JPanel jp2=new JPanel(new FlowLayout());//面板2
JPanel jp3=new JPanel(new FlowLayout());//面板3

JLabel jl1=new JLabel("登录名:");//登录名标签
JLabel jl2=new JLabel("密码:");//密码标签
JTextField jt1=new JTextField(20);//登录名输入框
JTextField jt2=new JPasswordField(20);//密码输入框
((JPasswordField) jt2).setEchoChar('*');
JButton jb1=new JButton("提交");//提交按钮
JButton jb2=new JButton("重置");//重置按钮
jb1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(jt1.getText().equals("mr" )&& jt2.getText().equals("mrsoft")){
JOptionPane.showMessageDialog(null, "登陆成功");
}
else{
JOptionPane.showMessageDialog(null, "用户名或密码错误");
}
}
});
jb2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0){
jt1.setText("");
jt1.requestFocus();
jt2.setText("");
jt2.requestFocus();
}
});

jp1.add(jl1);
jp1.add(jt1);
jp2.add(jl2);
jp2.add(jt2);
jp3.add(jb1);
jp3.add(jb2);
container.add(jp1);
container.add(jp2);
container.add(jp3);

container.setBackground(Color.white);
jf.setVisible(true);
jf.setSize(200, 150);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String [] args){
new Login().CreateJFrame("登陆窗口");
}
}

总结:

1.当一个窗体里有多个组件时,可以选择把窗体分成多个面板,把组件放在面板中,这样就会更加清晰

2.要区分三种布局方式,使界面更加美观

3.设计完之后,不能忘了使窗体可视化并设置其大小

4.监听事件的使用


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值