Пишу приложение на java, используя javafx и scene builder.
В одном из полей нужно ввести цифру от 0 до 5.
Как сделать,чтобы каждое число соответствовало определённому имени?
то есть:
-назначить каждому числу какое-либо название.Например:
-получить из текстового поля число
-положить число в переменную, которая будет отображать название, соответствующее числу
0 - "none"
1 - "development"
2 - "management"
3 - "accounting"
4 - "sales"
5 - "SEO"
В дальнейшем переменную каждого числа я буду обрабатывать, например выводить в другое текстовое поле
Вот как я получил текст из поля. Возможно это неправильный вариант получения числа
String departments = department.getText();
Код класса Controller:
package Email;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TextField;
import javafx.scene.control.Label;
import javafx.event.ActionEvent;
import javafx.scene.input.MouseEvent;
import java.net.URL;
import java.util.ResourceBundle;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Controller implements Initializable {
//initialize fx:id fields
@FXML
private TextField name, lastName, company, department;
@FXML
private Label displayName, displayEmail, displayPassword, errorName, errorLastName, errorCompany, errorDepartment;
//The Method that shows result by clicking the button
@FXML
private void showResult(ActionEvent event) {
//Take input from text fields
String names = name.getText();
String lastnames = lastName.getText();
String companies = company.getText();
String departments = department.getText();
//create operator IF that checks if all fields are not empty and print result
if (name.getText() == null || name.getText().trim().isEmpty()
|| lastName.getText() == null || lastName.getText().trim().isEmpty()
|| company.getText() == null || company.getText().trim().isEmpty()
|| department.getText() == null || department.getText().trim().isEmpty())
{
display();
} else {
displayName.setText("Name : " + names + " " + lastnames);
displayEmail.setText("Email : " + names + "." + lastnames + "@");
displayPassword.setText("Password : ");
}
//adding the method checkFields to every field, just to simplify the code
checkFields(name, errorName);
checkFields(company, errorCompany);
checkFields(department, errorDepartment);
checkFields(lastName, errorLastName);
}
//Method that validates department textfield. This makes only numbers accepted
@FXML
boolean validateNumber(MouseEvent event) {
Pattern p = Pattern.compile("[0-5]");
Matcher m = p.matcher(department.getText());
if (m.find() && m.group().equals(department.getText())) {
department.getStyleClass().removeAll("error-field");
errorDepartment.setText("");
return true;
} else {
display();
department.getStyleClass().add("error-field");
errorDepartment.setText("Only 0-5 number is accepted!");
return false;
}
}
//Method that doesn't show result for all items when clicking a button
private void display() {
displayName.setText("");
displayEmail.setText("");
displayPassword.setText("");
}
//The method that makes checking. If a field is empty, method add red color to a field and add red label under a field
private void checkFields(TextField lastName, Label errorLastName) {
if (lastName.getText() == null || lastName.getText().trim().isEmpty()) {
lastName.getStyleClass().add("error-field");
errorLastName.setText("Field is Empty!");
} else {
lastName.getStyleClass().removeAll("error-field");
errorLastName.setText("");
}
}
//Method that provides acces to fields FXML
@Override
public void initialize(URL location, ResourceBundle resources) {
}
}