Я не могу установить TextField, если переменная TextField установлена как окончательная, но если я изменю ее на частную или общедоступную, она изменит текст моего текстового поля. Я думал, что final просто не позволяет создать еще один экземпляр класса. Я попытался напечатать HashCode как частного, так и окончательного TextField, но они не менялись. Так что мне любопытно, почему у меня должен быть частный или общедоступный TextField для SetText().
public class SearchController {
@FXML
final TextField textfieldSelectedDirectory = new TextField();
@FXML
private Button path;
@FXML
private Label pathlabel;
@FXML
final TextField searchfield = new TextField();
public String getSearchfield() {
return searchfield.getText();
}
private MainApp mainApp;
private Stage stage;
public SearchController() {
}
@FXML
private void Index() {
IndexFiles.index();
}
@FXML
private void search() {
SearchFiles().Search();
System.out.println(searchfield.hashCode());
System.out.println("Somtu");
System.out.println(getSearchfield());
}
private void setPath(File selectedDirectory) {
String dir = selectedDirectory.getAbsolutePath();
pathlabel.setText(dir);
textfieldSelectedDirectory.clear();
// textfieldSelectedDirectory.getParent().layout();
System.out.println(textfieldSelectedDirectory.getText());
}
}
Вам спасибо за ответы.