Member 13954234 Ответов: 1

Я сделал Java-программа логина на качелях, но это вызовет ошибку во время выполнения


Коад дается следующим образом
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class lg extends Frame implements ActionListener
{
JLabel l1,l2,l3;
JTextField t;
JPasswordField p;
JButton b;
lg()
{
l1=new JLabel("user id");l1.setBounds(50,100,100,50);
t=new JTextField();t.setBounds(100,100,100,50);
l2=new JLabel("pass. wd");l2.setBounds(50,180,100,50);
p=new JPasswordField();p.setBounds(100,180,100,50);
b=new JButton("login");b.setBounds(150,250,100,50);b.setBackground(Color.green);
l3=new JLabel();l3.setBounds(150,330,200,50);
b.addActionListener(this);
add(l1);add(l2);add(t);add(p);add(b);add(l3);
setSize(500,500);
setLayout(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String u=t.getText();
char c[]=p.getPassword();
String w=String.valueOf(c);
int i=Integer.parseInt(w);
System.out.println(p);
if(e.getSource()==b)
{
String v=new String("snks");
if(u==v&&i==1234)
System.out.println("match");
else
System.out.println("not match");
}
}
public static  void main(String...s)
{
new lg();
}
}


Что я уже пробовал:

пароль совпадает но идентификатор пользователя не совпадает он выдает ошибку времени выполнения

Patrice T

Какое сообщение об ошибке и позиция ?

1 Ответов

Рейтинг:
0

Mohibur Rashid

когда вы задаете вопрос, связанный с ошибкой, пожалуйста, также опубликуйте эту ошибку.

если w не является числом, содержит пробел или другой символ parseInt вызовет исключение. оберните этот звонок с помощью try catch. у вас все еще есть проблема с проверкой пользователя.

пробовать

if(u.compareTo(v) == 0) { // u==v will not work, in practical cases. Since == will compare object
  ....
}


Чтобы назначить литеральную строку, вы можете просто написать
v = "your desired constant";


Пожалуйста, изучите этот код в свободное время, вы найдете что-то интересное.
public static void main(String[] args) throws IOException, InterruptedException {
  String x="000";
  String y = new String("000");
  String z = "000";
  System.out.println(x==y); // false
  System.out.println(x==z); // true
  System.out.println(x.compareTo(y)==0); // true
  System.out.println(x.equals(y)); // true
}