java作业求改错

importjava.awt.*importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;... import java.awt.*
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class UserLoginApp extends JFrame{
TextField t1,t2;
JButton b1,b2,b3;
JComboBox jcb;
JFrame frm;

UserLoginApp(String sTitle){
super(sTitle);
Container c=getContentPane();
c.setLayout(new GridLayout(4,1,2,2));
JPanel p1=new JPanel();
p1.setLayout(new FlowLayout(FlowLayout.LEFT));
p1.add(new JLabel("用户类型"));
jcb=new JComboBox();
jcb.addItem("学生用户");
jcb.addItem("教师用户");
jcb.setSelectedIndex(0);
p1.add(jcb);
c.add(p1);

JPanel p2=new JPanel();
p2.setLayout(new FlowLayout(FlowLayout.LEFT));
p2.add(new JLabel(" 用户名: "));
t1=new TextField("",15);
p2.add(t1);
c.add(p2);

JPanel p3=new JPanel();
p3.setLayout(new FlowLayout(FlowLayout.LEFT));
p3.add(new JLabel(" 密码: "));
t2=new TextField("",15);
p3.add(t2);
c.add(p3);

JPanel p4=new JPanel();
p4.setLayout(new FlowLayout(FlowLayout.LEFT));
b1=new JButton("确定");
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
b1ActionPerformed(evt);
}
});
p4.add(b1);
b2=new JButton("取消");
b2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
b2ActionPerformed(evt);
}
});
p4.add(b2);
b3=new JButton("退出");
b3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
b3ActionPerformed(evt);
}
});
p4.add(b3);
c.add(p4);
}
public void b1ActionPerformed(ActionEvent evt){
if(jcb.getSelectedIndex()==0){
if(t1.getText()==null){
JOptionPane.showMessageDialog(null, "用户名不可为空!");
}
else if(t2.getText()==null){
JOptionPane.showMessageDialog(null, "密码不可为空!");
}
else if(t1.getText()=="s"&&t2.getText()=="s"){
JOptionPane.showMessageDialog(null, "学生用户登录成功");
}
else{
JOptionPane.showMessageDialog(null, "用户名不存在或者密码不正确!");
}
}
if(jcb.getSelectedIndex()==1){
if(t1.getText()==null){
JOptionPane.showMessageDialog(null, "用户名不可为空!");
}
else if(t2.getText()==null){
JOptionPane.showMessageDialog(null, "密码不可为空!");
}
else if(t1.getText()=="t"&&t2.getText()=="t"){
JOptionPane.showMessageDialog(null, "教师用户登录成功");
}
else{
JOptionPane.showMessageDialog(null, "用户名不存在或者密码不正确!");
}
}
}
public void b2ActionPerformed(ActionEvent evt){
t1.setText("");
t2.setText("");
}
public void b3ActionPerformed(ActionEvent evt){
dispose();
}
public static void main(String args[]){
UserLoginApp frm=new UserLoginApp("用户登录");
frm.setSize(200, 160);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.pack();
frm.setVisible(true);
}
}
运行之后实现不了“确定”按钮的功能,求大神帮我改正。
这是作业要求:
编写一个用户登陆程序UserLoginApp.java,具体要求如下:
①用户界面大小为200*160像素,如下图9-4所示:
②用户类型包括学生用户和教师用户,缺省为学生用户。
③“确定”按钮功能:如果用户名为空,则打印"用户名不可为空!";如果密码为空,则打印"密码不可为空!";如果是学生用户,用户名和密码都是s,登陆成功则打印"学生用户登陆成功";如果是教师用户,用户名和密码都是t;登陆成功则打印"教师用户登陆成功";如果登陆不成功,则打印"用户名不存在或者密码不正确!"。
④“取消”按钮功能:将用户名和密码的输入框清空。
⑤“退出”按钮功能:退出程序。
展开
 我来答
百度网友9ccec88
推荐于2016-02-02 · TA获得超过2018个赞
知道大有可为答主
回答量:2154
采纳率:50%
帮助的人:1599万
展开全部

修改函数如下,修改处见注释。错在判断两个字符串是否相等的问题,不能直接用等号。字符串也是对象,比如Object a,Object b,用等号是比较两个变量(a,b)的值,它们的值是引用的两个对象的地址,两个地址当然不一样,就不可能==。如果是比较基本数据类型,比如int,float,char等等就不存在这个问题,因为它们的值就是它们自己。

而比较对象的时候一般是通过覆写Object类的equals方法来实现(给外部调用equals方法)。

String类有两个equals方法,我代码里面用的是equals,区别大小写。而equalsIgnoreCase是不区别大小写。

    public void b1ActionPerformed(ActionEvent evt)
    {
        if (jcb.getSelectedIndex() == 0)
        {
            if (t1.getText() == null)
            {
                JOptionPane.showMessageDialog(null, "用户名不可为空!");
            }
            else if (t2.getText() == null)
            {
                JOptionPane.showMessageDialog(null, "密码不可为空!");
            }
            //t1.getText() == "s"这是不可能的,两个对象不能通过等号来判断,t2同理
            else if ("s".equals(t1.getText()) && "s".equals(t2.getText()))
            {
                JOptionPane.showMessageDialog(null, "学生用户登录成功");
            }
            else
            {
                JOptionPane.showMessageDialog(null, "用户名不存在或者密码不正确!");
            }
        }
        if (jcb.getSelectedIndex() == 1)
        {
            if (t1.getText() == null)
            {
                JOptionPane.showMessageDialog(null, "用户名不可为空!");
            }
            else if (t2.getText() == null)
            {
                JOptionPane.showMessageDialog(null, "密码不可为空!");
            }
            //t1.getText() == "s"这是不可能的,两个对象不能通过等号来判断,t2同理
            else if ("t".equals(t1.getText()) && "s".equals(t2.getText()))
            {
                JOptionPane.showMessageDialog(null, "教师用户登录成功");
            }
            else
            {
                JOptionPane.showMessageDialog(null, "用户名不存在或者密码不正确!");
            }
        }
    }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式