2015-04-15 3 views
1

Я следовать этому примеру: http://code.makery.ch/blog/javafx-8-event-handling-examples/Scene Builder 2.0 игнорирует контроллер

И это мой контроллер:

public class FXMLController implements Initializable { 

    @FXML // fx:id="myButton" 
    private Button myButton; // Value injected by FXMLLoader 

    @Override 
    public void initialize(URL url, ResourceBundle rb) { 

    }  

    @FXML 
    private void handleButtonAction(ActionEvent event) { 
     // Button was clicked, do something... 
     System.out.println("TEST"); 
    } 
} 

После этого я открываю файл FXML с сцены строитель. В левом нижнем углу класс контроллера определен правильно. Однако я не получаю auto complete для идентификаторов и обработчиков событий. Я имею в виду, что у меня нет выпадающих списков, например, на изображении из этого примера.

enter image description here

У меня есть ощущение, что SB не разобрать мой контроллер только показывает свое название из XML-файла. Как это исправить?

+0

@ItachiUchiha Но как можно объяснить образ, который я заготовил? Посмотрите на выпадающие меню. –

+1

Возможно, это работает, когда 'fxml' находится в ** том же пакете ** как' controller'. Хотя, я не уверен. Может быть, кто-то может помочь вам лучше. – ItachiUchiha

+0

@ItachiUchiha вы совершенно правы. Если fxml находится в одном пакете, вы получите раскрывающееся меню. – griFlo

ответ

3

dropdown виден рядом с controller textfield и другим event-handling textfields в SceneBuilder только тогда, когда контроллер и FXML присутствует в одной папке .

Есть запрос функций, который уже открыт для них, пожалуйста, проголосуйте за них.

+0

Только не в 'том же пакете', а в' той же папке'. –

+0

Исправить, отредактировать. – ItachiUchiha

+0

См. Http://www.youtube.com/watch?v=gKU7ZeCNbqU время 40:04 и 40:40 Он открывает файл fxml из/src/main/resources, и контроллер разбирается. –

0

Просто пройти по следующим шагам

  1. открытое затмение идут в Файл-> Другие-> JavaFX-> JavaFX Проект
  2. Give имя проекта и затем нажмите (без кнопки «Готово»). Далее-> Далее-> Язык-> FXML
  3. Наконец, проект создается с помощью SampleController, после чего вы можете увидеть класс контроллера, автоматически добавленный в SceneBuilder.
  4. Просто кнопка попытайтесь увидеть в настоящее время код: На действиях с указанием методы, а также (если метод написан внутри класса SampleController)
Смежные вопросы