打印(获取打印输出)arrays列表中的元素

场景:

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

首先,我想把Arraylist元素放到TextArea中,然后打印出来。 但是将每个元素附加到TextArea需要很多时间(考虑大约100 000个单元格数据)。 SI认为直接从ArrayList打印。

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

这个代码可以像TextArea一样从UI中打印出来。

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

但问题是我没有在我的用户界面的数据。 选项我想:

  • 创build一个临时文件并打印它删除该文件
  • 将数组列表转换成东西,然后打印出来。
  • 任何图书馆这样做?

任何build议将有所帮助。 谢谢。

PS:

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

我并不确定你在这里真正需要什么,但是我要回答你想要将ArrayList打印到TextArea

如果您正在构buildJavaFX应用程序,则可以将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++); }}); } } 

在这个例子中,点击button应该添加一个新的项目的ObservableList的变化将出现在屏幕上的ListView

您可以添加新项目,删除项目,对项目进行sorting,修改项目,并且更改将在屏幕上更新。

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