使用按钮关闭JavaFX中的对话框

时间:2019-02-19 17:58:34

标签: java javafx

我想在JavaFX中创建联系人应用程序,我创建了一个对话框,当我想打电话给某人并使用实际按钮而不是按钮类型关闭它时,该对话框应该打开。

我正尝试为其编写代码(如下),但是它只是没有关闭对话框,我也不知道为什么。

有人可以帮忙吗?

谢谢。

findEntries(
  siteId: number, filter = '', sortOrder = 'asc', sortActive= 'date',
  pageIndex = 0, pageSize = 10): Observable<Entry[]> {

  return this.http.get(`${this.API_URL}/api/entries`, {
    params: new HttpParams()
      .set('siteId', siteId.toString())
      .set('filter', filter)
      .set('sortOrder', sortOrder)
      .set('sortActive', sortActive)
      .set('pageIndex', pageIndex.toString())
      .set('pageSize', pageSize.toString()),
    observe: 'response'
  }).pipe(
    map((res: any) => {
      const pager = JSON.parse(res.headers.get('X-Pagination'));
      const playload: { [id: number]: Entry } = res.body;
      const array = Object.values(playload);

                   // <<<<<=== TS 2339: Property 'pager' does not exist on type 'Entry[]'
      array.pager = pager;

      return array;
    })
  );
}

1 个答案:

答案 0 :(得分:1)

只有将非Dialog值分配给null属性,result才会关闭。这需要在您的代码中“手动”完成:

button.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent actionEvent) {
        System.out.println("pressed");//tested if it listens, and this prints out the "pressed"
        dialog.setResult(ButtonType.CLOSE);
        dialog.close();
    }
});