小编mal*_*ter的帖子

如何在 TableView 的每一行中放置一个 ProcessIndicator 并指示任务状态

我正在尝试在 JavaFX 中执行以下操作:

  • 有一个TableView多行。
  • 每行包含带有文本的列和一个进度/状态列。
  • Button当按下特定按钮时,TableView应该为每一行执行一些任务,一行接着另一行。(例如检查一些数据,...)
  • 执行此任务时,ProgressIndicator“状态”列中应显示不确定,直到此行的任务完成,然后指示器显示为“已完成”。
  • 当每行的所有任务完成后,可以再次按下该按钮来重置状态并再次执行任务。

我在相关的 Stackoverflow 帖子此处找到了一些帮助,并尝试根据需要进行调整,但遇到了一些问题:

  1. 目前,ProgressIndicator当我运行程序时,每行的每个都会立即显示(不确定)。我怎样才能只激活它们/让它们在按下按钮后对每一行依次可见?
  2. 假任务完成后再次按下按钮不会重新启动它。我必须如何修改/重建程序才能使重置成为可能?
  3. 整体方法有意义吗?

我当前的可运行代码:

import java.util.Random;
import java.util.concurrent.*;

import javafx.application.Application;
import javafx.beans.property.ReadOnlyStringProperty;
import javafx.beans.property.ReadOnlyStringWrapper;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Task;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import javafx.util.Callback;

public class ProgressIndicatorTableCellTest extends Application {
    public void start(Stage primaryStage) {
        TableView<TestTask> table = new TableView<>();
        Random rng = new Random();
        for (int i = 0; i …
Run Code Online (Sandbox Code Playgroud)

java javafx tableview

3
推荐指数
1
解决办法
108
查看次数

条件语句睡眠

为什么我得到“缺陷”而不是“正常”?

给定三个数字:A、B 和 H。据医生报告:

  • 每天至少要睡一个小时,
  • 但不超过B小时。
  • H 是安娜睡了多少小时。

任务:

  • 如果 Anna 的睡眠时间少于 A 小时,则打印“Deficiency”。
  • 如果她的睡眠时间超过 BB 小时,则打印“Excess”。
  • 如果她的睡眠符合建议,请打印“正常”。
public class Main {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);

        int units = input.nextInt();

     
        int a = input.nextInt();
        int b = input.nextInt();
        int h = b - a;

        if (h < a ){
            System.out.println("Deficiency");
        } else if (h > b) {
            System.out.println("Excess");
        } else if (h == 8){
            System.out.println("Normal");
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

java

1
推荐指数
1
解决办法
64
查看次数

迭代集合以添加项目但抛出 ConcurrentModificationException

package com.ripal;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Iterator;

public class Outputs {

    public void show() {
        final ArrayList<String> list = new ArrayList<String>();

        list.add("banana");
        list.add("apple");

        Iterator<String> itr = list.iterator();

        Collections.sort(list);
        while (itr.hasNext()) {
            System.out.println(itr.next() + " ");
        }
    }
}

class Test {

    public static void main(String[] args) {
        Outputs outputs = new Outputs();
        outputs.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

java collections arraylist concurrentmodification

1
推荐指数
1
解决办法
99
查看次数