Я создал программу, в которой имена пользователей и пароли сохраняются в массивах (user и pas). Теперь я хочу, чтобы пользователь заходил в систему, поэтому я хочу использовать линейный поиск, чтобы узнать, правильны ли данные учетной записи или нет. Я не уверен, что я делаю неправильно здесь:Линейный поиск в JavaFX
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.control.PasswordField ;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Main extends Application {
Button btnLogin,btnAanmaken;
TextField txtUsername;
PasswordField Password;
Label lblUsername,lblPassword;
int index;
String[] user = new String[10];
String[] pas = new String[10];
int searchInt; // search key
int position; // location of search key in array
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Aanmelden");
btnLogin = new Button();
btnLogin.setText("Login");
btnAanmaken = new Button();
btnAanmaken.setText("Aanmaken");
txtUsername=new TextField();
txtUsername.setMaxWidth(200);
Password=new PasswordField();
Password.setMaxWidth(200);
lblUsername=new Label();
lblUsername.setText("Gebruikersnaam");
lblPassword=new Label();
lblPassword.setText("Paswoord");
btnAanmaken.setOnAction(e ->{
if (index <= 10){
index++;
user[index]=txtUsername.getText();
pas[index]=Password.getText();
AlertBox.display("Welkom","Account werd succesvol aangemaakt: \n Gebruikersnaam: " + user[index] + " \n Paswoord: " + pas[index] );
//AlertBox.display("Welkom", "U bent nu ingelogd");
}else{
System.out.println("U heeft het maximaal aantal accounts bereikt");
}
});
//btnLogin.setOnAction(e -> {
// if (txtUsername.getText().equals("user") && Password.getText().equals("pass")){
// AlertBox.display("Welkom", "U bent nu ingelogd");
// }
// else{
// AlertBox.display("Fout ", "De opgegeven gebruikersnaam of het opgegeven wachtwoord is onjuist.");
// }
// });
btnLogin.setOnAction(e -> linearSearch(String searchKey))
VBox layout = new VBox();
layout.getChildren().addAll(lblUsername,txtUsername,lblPassword,Password,btnAanmaken,btnLogin);
Scene scene = new Scene(layout, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
}
// perform a linear search on the data
public int linearSearch(String searchKey)
{
// loop through array sequentially
for (int index = 0; index < user.length; index++)
if (user[ index ] == searchKey)
return index; // return index of integer
return -1; // integer was not found
} // end method linearSearch
}
См. [* Как сравнить строки в Java? *] (Http://stackoverflow.com/q/513832/230513) – trashgod