Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javafx动态填充listview_Java_Listview_Javafx 2_Observablelist - Fatal编程技术网

javafx动态填充listview

javafx动态填充listview,java,listview,javafx-2,observablelist,Java,Listview,Javafx 2,Observablelist,这里是Javafx新手。。我需要有关填充listview的最佳方法的帮助。这是我的设置 我正在开发一个UI工具,用来跟踪在我的环境中运行的虚拟机的数量。每当机器启动或停机时,我都会收到一个回调。如何基于该数据更新listview。控制器代码- public class MainOverviewController implements Initializable { @FXML private ListView<String> devicesListView; //

这里是Javafx新手。。我需要有关填充listview的最佳方法的帮助。这是我的设置

我正在开发一个UI工具,用来跟踪在我的环境中运行的虚拟机的数量。每当机器启动或停机时,我都会收到一个回调。如何基于该数据更新listview。控制器代码-

public class MainOverviewController implements Initializable
{
    @FXML
    private ListView<String> devicesListView; // Points to the listview

    @Override
    public void initialize(URL location, ResourceBundle resources) {

    ObservableList<String> items = FXCollections.observableArrayList("Machines connected");

    devicesListView.setItems(items);

    ...
}
现在我的问题是,从vmStarted和vmDisconnected函数更新observablelist、items的最佳方法是什么。我可以将observablelist传递给VMChangeListener,或者使用某种回调?我应该在单独的线程中执行此操作吗?

公共类MainOverviewController扩展vmListener实现可初始化
public class MainOverviewController extends vmListener implements Initializable
{
    @FXML
    private ListView<VM> devicesListView; // Points to the listview

    @Override
    public void vmStarted(final VM vm)
    {
        Platform.runLater(new Runnable()
        {
            @Override
            public void run()
            {
                devicesListView.getItems().add(vm);
            }
        });
    }

    @Override
    public void vmDisconnected(final VM vm)
    {
        Platform.runLater(new Runnable()
        {
            @Override
            public void run()
            {
                devicesListView.getItems().remove(vm);
            }
        });
    }

    ...
}
{ @FXML 私有ListView设备ListView;//指向ListView @凌驾 公共void vmStarted(最终VM) { Platform.runLater(新的Runnable() { @凌驾 公开募捐 { DeviceListView.getItems().add(vm); } }); } @凌驾 公共无效vmDisconnected(最终VM) { Platform.runLater(新的Runnable() { @凌驾 公开募捐 { DeviceListView.getItems().remove(vm); } }); } ... }
public class MainOverviewController extends vmListener implements Initializable
{
    @FXML
    private ListView<VM> devicesListView; // Points to the listview

    @Override
    public void vmStarted(final VM vm)
    {
        Platform.runLater(new Runnable()
        {
            @Override
            public void run()
            {
                devicesListView.getItems().add(vm);
            }
        });
    }

    @Override
    public void vmDisconnected(final VM vm)
    {
        Platform.runLater(new Runnable()
        {
            @Override
            public void run()
            {
                devicesListView.getItems().remove(vm);
            }
        });
    }

    ...
}