Problème intéressant, il pourrait y avoir une méthode sophistiquée utilisant l'interface Document; mais fondamentalement créer deux côte à côte JTextPanes(). Vous pourriez passer beaucoup de temps à essayer de mesurer automatiquement le texte afin qu'il se scinde en deux, mais je voudrais juste essayer de trouver une limite de paragraphe au milieu qui équilibre à peu près le nombre de caractères non-espaces. Si le texte est déjà structuré, vous pouvez consulter le document
int findSplitBoundary(String x) {
int midPoint = x.length()/2;
for (int i = 0; i < Math.min(x.length()/2 - 2, 100); i++) {
if (x.startsWith(".\n", midPoint - i)) return midPoint- i;
if (x.startsWith(".\n", midPoint + i)) return midPoint- i;
}
return midPoint;
}
Ensuite, ajoutez votre texte aux volets en tant que tels:
JTextPane column1 = new JTextPane();
JTextPane column2 = new JTextPane();
split=findSplitBoundary(longText);
column1.setText(longText.substring(0, split));
column2.setText(longText.substring(split));
add(column1, BorderLayout.WEST);
add(column2, BorderLayout.EAST);
Aussi, vous trouverez peut-être un peu de chance regardant le HTMLEditorKit, bien que je don Je ne sais pas si le HTML offre le genre de découpage de texte.
column1.setEditorKit(new HTMLEditorKit());
juste pour clarifier, vous voulez dire physiquement imprimer, pas imprimer sur l'écran? – aioobe
@aioobe: je veux dire physiquement imprimer avec une imprimante. – Jonas