JavaFX - 排序算法 - BarChart不更新

时间:2018-01-14 18:30:20

标签: java sorting user-interface javafx

希望有人可以帮助我。 我必须开发一个用于排序算法的项目,并且必须开发一个使用接口的应用程序,以便在控制台,ListView和这个“Bargraph”(BarChart的子类)上更新排序列表。

该项目有以下几个类:

GUI.class(GUI + Controller)

Sorting.class(填充数组和排序算法)

Display.class(Interface - > update(...))

Console.class(显示到控制台)

Listbox.class(带有更新(...)的扩展ListView)

Bargraph.class(带有更新的扩展BarChart(...))

项目完全有效,我唯一的问题是当我从Sorting.class中的相应方法“swap”调用方法update(...)时。

对于具有许多交换的最坏情况冒泡排序,显示屏仅显示开始和结束。直到最后才重新绘制BarChart。

有没有办法通过使用实现来实现它,还是我必须更改更多?

非常感谢提前! :)

import javafx.scene.chart.BarChart;
import javafx.scene.chart.CategoryAxis;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;


/**
 *
 * Beschreibung
 *
 * @version 1.0 vom 13.01.2018
 * @author 
 */

public class Bargraph extends BarChart implements Display {


  private int[] numlist;


  public Bargraph(CategoryAxis xAxis, NumberAxis yAxis)
  {
    super(xAxis, yAxis);
  }


  private void delay() {
    try {
      Thread.sleep(200);
    }
    catch (InterruptedException e) {
      e.printStackTrace();
    }
  }

  public void update(int[] numlist) {

    this.numlist=numlist;

    XYChart.Series data = new XYChart.Series();

    this.getData().clear();

    for (int i = 0; i < numlist.length; i++ ) {
      XYChart.Data column = new XYChart.Data<>(String.valueOf(i), numlist[i]);
      data.getData().add(column);
    }
    this.getData().addAll(data);

  }


}

0 个答案:

没有答案