2016-07-31 6 views
-1

나는 모든 변경을 시도했지만 잘못된 자격 증명을 보여줍니다. 제발이 문제를 해결하십시오.아무리하지만 인증이 실패합니다 - Java - Swing

단순히 조합을 거부하고 그것에 대해 혼란스러워합니다.

이것은 논리적 오류입니다.

테이블에 사용자 이름을 추가하고 싶습니다.

모든 패키지를 추가하고 모든 예외를 제거했지만 작동하지 않습니다.

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
public class Authenticate extends JFrame implements ActionListener 
{ 
JLabel l1,l2,l3,l4,l5,l6,l7,l8; 
JPasswordField jp1,jp2; 
JComboBox c1,c2,c3; 
JTextField t1,t2,t3; 
JTextArea ta; 
JButton jb1,jb2; 
String[] day = new String[31]; 
String[] year = new String[40]; 
String[] month = new String[12]; 
public Authenticate() 
{ 
Container c = getContentPane(); 
c.setLayout(new FlowLayout(FlowLayout.CENTER)); 
l1 = new JLabel("Name"); 
l2 = new JLabel("E-mail ID"); 
l3 = new JLabel("Address"); 
l4 = new JLabel("User name"); 
l5 = new JLabel("Password"); 
l6 = new JLabel("Confirm Password"); 
l7 = new JLabel("DOB"); 
l8 = new JLabel(" "); 
jp1 = new JPasswordField(10); 
jp2 = new JPasswordField(10); 
jp1.setEchoChar('$'); 
jp2.setEchoChar('*'); 
t1 = new JTextField(10); 
t2 = new JTextField(10); 
t3 = new JTextField(10); 
ta = new JTextArea(3,15); 
jb1 = new JButton("Submit"); 
jb2 = new JButton("Reset"); 
for(int i=0;i<31;i++) 
{ 
day[i] = String.valueOf(i+1); 
} 
for(int i=0;i<35;i++) 
{ 
year[i] = String.valueOf(i+1980); 
} 
month[0] = "January"; 
month[1] = "February"; 
month[2] = "March"; 
month[3] = "April"; 
month[4] = "May"; 
month[5] = "June"; 
month[6] = "July"; 
month[7] = "August"; 
month[8] = "September"; 
month[9] = "October"; 
month[10] = "November"; 
month[11] = "December"; 
c1 = new JComboBox(day); 
c2 = new JComboBox(month); 
c3 = new JComboBox(year); 
jb1.addActionListener(this); 
jb2.addActionListener(this); 
c.add(l1); 
c.add(t1); 
c.add(l2); 
c.add(t2); 
c.add(l3); 
c.add(ta); 
c.add(l4); 
c.add(t3); 
c.add(l5); 
c.add(jp1); 
c.add(l6); 
c.add(jp2); 
c.add(l7); 
c.add(c1); 
c.add(c2); 
c.add(c3); 
c.add(jb1); 
c.add(jb2); 
c.add(l8); 
setSize(500,500); 
setVisible(true); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 

public void actionPerformed(ActionEvent ae) 
{ 
String s = ae.getActionCommand(); 
String s1,s2,s3; 
s1 = t3.getText(); 
s2 = jp1.getText(); 
s3 = jp2.getText(); 
if(s.equals("Submit")) //submit btn 
{ 
if(s1.equalsIgnoreCase("Ghiridhar") && s2.equals("Achiever") && s2==s3)  // right credentials 
l8.setText("Login Successful"); 
else 
{ 
l8.setText("Invalid Credentials"); 
t3.setText(" "); 
jp1.setText(""); 
jp2.setText(""); 

}  //else 

}  //inner if 
else // reset btn 
{ 
t1.setText(" "); 
t2.setText(" "); 
t3.setText(" "); 
ta.setText(" "); 
jp1.setText(""); 
jp2.setText(""); 
l8.setText(" "); 
}  //else 

}  // action fn 

public static void main(String a[]) 
{ 
Authenticate a1 = new Authenticate(); 
} 

} 

이 부분을 도와주세요. 당신이 S2와 S3의 텍스트를 비교하려는 경우

+1

코드를 올바르게 들여 쓰세요. 고문입니다. –

+3

1) 들여 쓰기 코드 행과 블록의 논리적이고 일관된 형식을 사용하십시오. 들여 쓰기는 코드의 흐름을 따라 가기 쉽도록 만들어졌습니다. 2) 더 나은 도움을 받으려면 [MCVE] 또는 [Short, Self Contained, Correct Example] (http://www.sscce.org/)를 게시하십시오. 3) *** "이 부분에 도움주세요."*** 질문하십시오. –

답변

0

은 다음과 같아야 같은 :

s2.equals(s3)

대신

s2==s3

.

문자열을 equals()과 비교하기 때문에.

다른 사람들이 제안한대로 코드를 들여 씁니다.

+0

내 무지. 그것은 효과가 있었다. 그리고 내 인증 성공. –

+0

그게 좋습니다! 도움이 된 것을 기쁘게 생각합니다. –