0
我有以下UIJavaFX中加載運行中添加水平
所以,你插入一個關鍵字,然後按「CERCA」(這就像在意大利搜索),然後是谷歌自定義搜索API顯示前10張圖片。在自定義搜索API正在處理結果(圖片)期間,我想展示其他這樣的圖片,如此
(我知道它很大,但尺寸現在不是主要觀點)。我的想法很簡單,我想通過UI將圖片放在一個「級別」(不知道如何調用),然後在3種情況下圖片將不可見:1)當API將結束其作業2 )如果我沒有結果3)如果我得到一個異常。我的問題是,這是做到這一點的最佳方法?然後,我應該使用線程嗎?
我希望我是清楚的
UPDATE:
這是 「CERCA」 按鈕
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 @覆蓋 \t \t \t \t \t \t保護布爾()調用拋出異常{ \t \t \t \t \t \t \t // TODO自動生成方法存根 \t \t \t \t \t \t \t return 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