2016-12-31 2 views
0

Я создал фреймворк входа в систему - кадр входа (1) с использованием Java Swing, где также происходит аутентификация пользователя.Какой компонент следует использовать в моем JOptionPane.showMessageDialog()?

  1. Это выглядит следующим образом:

Таким образом, если пользователь ставит неверный электронный идентификатор/пароль, он должен показать сообщение Dialog. Вот почему здесь я использую:

JOptionPane.showMessageDialog(this,"plese enter correct id/password") 

Но он показывает ошибку ..

Login.addActionListener((e) -> { 
    ArrayList<Registration> list0; 
    list0=UserDataReadWriteFromFile.readDataFromFile(); 
    int idpos=Search.searchId(tuid.getText().trim()); 
    if(idpos >=0){ 
     String ueid=tuid.getText().trim(); 
     String uupass=tpass.getText().trim(); 
     if(ueid.equals(list0.get(idpos).getId())&& uupass.equals(list0.get(idpos).getPassword())){ 
      new SearchDisp(idpos); 
     } 
     else 
      JOptionPane.showMessageDialog(this,"plese enter correct id/password"); 
    } 
}); 

Какой компонент следует использовать в JOptionPane.showMessageDialog()? вот код моего фрейма Login. В этом коде с кнопкой входа я добавил Action Listener, который написан в приведенном выше коде, который я спросил.

public class LoginFrame{ 
public LoginFrame() { 
    JLabel uid, upass; 
    JTextField tuid; 
    JPasswordField tpass; 
    JButton Login; 

    JFrame frame = new JFrame("Login"); 

    frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); 

    frame.setLayout(null); 
    JLabel background = new JLabel(new ImageIcon(
      "C:\\Users\\Tousif\\Desktop\\Login.jpg")); 
    frame.setContentPane(background); 

    uid = new JLabel("Email Id"); 
    uid.setBounds(60, 50, 120, 25); 
    frame.add(uid); 

    tuid = new JTextField(20); 
    tuid.setBounds(120, 50, 150, 24); 
    frame.add(tuid); 

    upass = new JLabel("Password"); 
    upass.setBounds(53, 80, 120, 25); 
    frame.add(upass); 

    tpass = new JPasswordField(20); 
    tpass.setBounds(120, 80, 150, 24); 
    frame.add(tpass); 

    Login = new JButton("Login"); 
    Login.setBounds(150, 110, 80, 25); 
    frame.add(Login); 

    frame.setSize(370, 216); 
    frame.setResizable(false); 


    frame.setLocationRelativeTo(null); 

    frame.setVisible(true); 
} 

public static void main(String[] arg) { 
    new LoginFrame(); 
} 
} 
+0

Какая ошибка? – joshuamabina

+0

Метод showMessageDialog (Component, Object) в типе JOptionPane не применим для аргументов (LoginFrame, String) –

+0

Это говорит о том, что 'LoginFrame' не имеет типа' Component'. Пожалуйста, разместите полный код своего класса «LoginFrame». – hotzst

ответ

-1

Вы можете просто использовать нуль, например:

JOptionPane.showMessageDialog(null, "Please Enter Correct ID and Password!", 
        "Invalid ID or Password", JOptionPane.WARNING_MESSAGE); 
+0

Хотя это, безусловно, возможно, это не оптимальный и не ответ на заданный вопрос. –

+0

@ T.Rashid, я ничего не видел, что состояния, использующие ** null **, не являются оптимальными, но я не здесь, чтобы аргументировать факт, я просто не могу найти этот оператор в JOptionPane JavaDocs. Даже JavaDocs, на которые вы так строго сказали, чтобы использовать null в качестве параметра parentComponent в своих примерах: https://docs.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html – DevilsHnd

+0

Что бы ни было .. голосующий голос был за то, что он не ответил на этот вопрос. –

Смежные вопросы