問題タブ [styleddocument]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
26 参照

java - フォーマットがコンソール出力や JTextPane と異なるのはなぜですか?

次のように、本質的にテーブルのように見えるものを JTextPane に出力したいと思います。

テーブルプリントアウト

私の出力が現在どのように見えるかは次のとおりです。

私の現在の出力

ご覧のとおり、列は実際にはまったく整列していません。ただし、コンソールでは完璧で、次のようになります。

コンソールの印刷

(少し切れていますが、要点はわかります。整列しています!)

これを行うために、 https://github.com/htorun/dbtableprinterからいくつかのコードを借りています。ただし、コードはコンソールへの出力を中心に構築されているため、出力をコンソールに表示したくないため、コード、つまり print メソッドで動作するようにいくつかのビットを変換しています。print と println の代わりに、GUI クラスから 2 つのメソッドを呼び出しています。


基本的に、彼らのコードは JDBC テーブルのメタデータを解析して、特定のクエリの行数、列数、およびそれぞれのデータ型を取得し、列幅、パディングなどを設定して、本質的にコンソールに出力されるテーブル ビューをフォーマットします。 . 次のコードでそれを行います: (上記のメソッドを使用した印刷関連のコードは私のものであり、それ以外はすべてそうではありません)

コンソール出力が完璧であるという事実を考えると、私が到達した結論は、私の印刷方法、または私が借りた DBTablePrinter クラスで使用される書式設定を StyledDocuments が処理する方法に問題があるということです。私は JTextPanes と StyledDocuments を初めて使用するので、ここで気付いていない簡単なことが起こっているだけかもしれません。