【问题标题】:Printing (get a printout) the elements in an arraylist打印(获取打印输出)数组列表中的元素
【发布时间】:2016-01-24 06:34:24
【问题描述】:

场景:

我正在做一个小应用程序来提取大量的 Excel 工作表数据并对其进行排序然后保存它,然后如果需要打印它。我正在使用JavaFX for UI and Apache POI 读取和写入 Excel 数据。我已将提取的数据放入 ArrayList 中,然后我可以进行保存部分。

首先我想将 Arraylist 元素放入 TextArea 中,然后我可以打印它。但是将每个元素附加到 TextArea 需要很长时间(考虑到大约 100 000 个单元格数据)。 S 我想直接从 ArrayList 打印。

问题: 是否可以从数组列表中进行打印。 以下任何选项都是可能的?

此代码可用于从 UI 打印一些内容,例如 TextArea。

if (job != null && job.showPrintDialog(ProjectNavigation.scene.getWindow())){
            boolean success = job.printPage(node);
            if (success) {
                job.endJob();
            }
        }

但问题是我的 UI 中没有数据。我认为的选项:

  • 创建一个临时文件并打印出来删除文件
  • 将数组列表转换成某种东西,然后打印出来。
  • 任何图书馆可以做到这一点??

任何建议都会有所帮助。谢谢。

PS:

正如 Khaled Khnifer 在他的回答中提到的,我使用 ListView 在 UI 中显示项目,我可以在其中获取要打印的数据。

【问题讨论】:

  • 您要将 ArrayList 打印到哪里? JavaFX UI、HTML、文件、Excel?

标签: java excel arraylist printing apache-poi


【解决方案1】:

我不确定你在这里真正需要什么,但我会回答你想将ArrayList 打印到TextArea 的部分。

如果您正在构建 JavaFX 应用程序,您可以将 ListView 绑定到 ObservableList,它会随着更改而更新。

public class AppController implements Initializable
{
    @FXML private Button myButton;

    @FXML private ListView myListView;

    // ObservableList is a List
    protected ObservableList<String> list = new FXCollections.observableArrayList();

    protected int counter = 0;

    @Override
    public void initialize(URL url, ResourceBundle rb)
    {
        myListView.setItems(list);

        myButton.setOnAction(new EventHandler<ActionEvent>()
        {@Override public void handle(ActionEvent event)
        {
            list.add(counter++);
        }});
    }
}

在此示例中,单击按钮应向ObservableList 添加一个新项目,更改将显示在屏幕上的ListView 上。

您可以添加新项目、删除项目、排序项目、修改项目,更改将在屏幕上更新。

这是一种从视图中分离数据的好方法,您不需要从 UI 读取数据,将其写入 UI,并且您可以轻松地将数据写入文件,因为它是 Serializable

【讨论】:

  • 谢谢。但我已经有一个 Filled ArrayList。我需要的是一种将 ArrayList 中的内容打印出来的方法。我正在寻找最佳选择。
  • @AnjulaRanasinghe Print the stuff in the ArrayList 去哪里?
  • 谢谢'ListView'工作。它解决了我的问题。我想不,我可以用它来制作打印作业。谢谢。
  • ObservableList 如何知道直接报告对支持列表所做的更改?很确定它不能。通过 ObservableList 添加项目不是更好吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-23
  • 2019-05-10
相关资源
最近更新 更多