У меня есть следующий интерфейсДобавить уровень в JavaFX во время операции загрузки
Таким образом, вы вставить ключевое слово, а затем нажмите кнопку «Cerca» (это как поиск на итальянском языке), то Google Custom Search Api показать первые 10 снимков. Во время пользовательского поиска API обрабатывают результаты (картинки), я хочу показать другое изображение, подобное этому
(Я знаю, что это большой, но измерение не является главным моментом сейчас). Моя идея проста, я хочу поместить изображение на один уровень (не знаю точно, как позвонить) через пользовательский интерфейс, тогда изображение не будет видно в 3 случаях: 1) Когда API закончит свою работу 2) Если у меня нет результатов 3) Если я получу исключение. Мой вопрос в том, что это лучший подход для этого? И затем, Должен ли я использовать Threads?
Я надеюсь, что было ясно
UPDATE:
Это код кнопки
cerca.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
// Task<Boolean> task = new Task <Boolean>(){
//
// @Override
// protected Boolean call() throws Exception {
// // TODO Auto-generated method stub
// return null;
// }
//
//
// };
String searchKeyWord = userTextField.getText();
result = getSearchResult(searchKeyWord);
for (i=0; i<result.size(); i++)
{
System.out.println("" +result.get(i));
ImageView resultview;
resultview = new ImageView(result.get(i));
resultview.setFitWidth(130);
resultview.setFitHeight(130);
// resultview.setStyle("-fx-border:6; -fx-border-color: green;");
if(j==4)
{
j=0;
k++;
}
resultgrid.add(resultview, j,k);
j++;
VBox vbox = new VBox();
resultgrid.setHgap(50);
resultgrid.setVgap(50);
// resultgrid.setStyle("-fx-border:1; -fx-border-color: red;");
vbox.getChildren().add(resultgrid);
vbox.setSpacing(10);
vbox.setPadding(new Insets(90, 0, 10, 220)); //TOP RIGHT BOTTOM LEFT
// content.setAlignment(resultgrid, Pos.TOP_RIGHT);
getChildren().add(vbox);
final int ind = i;
resultview.setOnMouseClicked((ev) ->{
if (ev.getClickCount()==2)
{
image = SwingFXUtils.fromFXImage(resultview.getImage(), null);
parent.setCrop(image);
}
});
}
}
});
Привет, славное объяснение, но мне нужен пример, чтобы понять.На данный момент я просто создать задачу, как эта 'Задача задачи = новая задача () { \t \t \t \t \t \t @Override \t \t \t \t \t \t защищенный булеву вызов() бросает исключение { \t \t \t \t \t \t \t // TODO автоматическая генерация метод заглушки \t \t \t \t \t \t \t null null; \t \t \t \t \t \t} \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t}; ' –
user2556079
@IItachiUchiha Я просто поставить код про кнопку "Cerca", так что в этом случае мы можем лучше понять друг друга. Я прокомментировал код, который я написал вам выше – user2556079
@ user2556079 Создание задачи внутри события действия кнопок не очень хорошая идея ИМО, поскольку вы нажимаете на нее много кода. Вы можете создать задачу и начать ее внутри события действия. Кроме того, вам также необходимо переопределить 'setOnSucceeded()' и 'setOnFailed()', что делает ваше событие неуклюжим. – ItachiUchiha