JTextpane
は、固定幅でも動的高さでも折り返しを許可する必要があります。高さは、ユーザーがテキストを追加または削除するときに変更する必要があります。私はJTextArea
を使用していましたが、テキストは違ったスタイルにする必要があります。この問題の簡単な方法はありますか?JTextPaneで固定幅で動的高さを設定する方法は?
2
A
答えて
1
水平スクロールなしのJScrollPane
を使用してください。
JFrame frame = new JFrame();
JPanel pnel = new JPanel();
frame.setContentPane(pnel);
JTextPane txtpane = new JTextPane();
txtpane.setPreferredSize(new Dimension(200, 200));
JScrollPane jsp = new JScrollPane(txtpane,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
pnel.add(jsp);
frame.pack();
frame.setVisible(true);
これはテキストを囲みません。テキストをラップするためにこれらを見てみましょう: http://java-sl.com/wrap.html、 http://java-sl.com/tip_html_letter_wrap.html
を私はJTextArea
ないJTextPane
2
を使用することをお勧めします私はすでに似たようなのための答えを書きました。 hereを確認してください。幅が設定されていない
場合、getPreferredSizeメソッドは
width
が最も長い行の場合の幅になります寸法(幅、高さ)を返します:あなたはJTextPaneので返されるpreferredSizeがであることを理解する必要がありますそこには折り返しがありません。そして、
height
、無限の幅を持つペインにすべての線を表示するのに必要な高さです。幅が設定されている場合、getPrefferedSizeは、それがラップされた場合ラッピング不可、及び
height
全体のテキストを表示するために必要な高さがない場合場合width
は最長の線の幅であろう寸法(幅、高さ)を返します現在の幅で。
この現象はなぜですか?
これは非常に簡単です。使用できる幅がわからない場合は、テキストを表すのに必要な高さを計算することはできません。
どのように動的に行うのですか?
JTextPaneのドキュメントにDocumentListenerを追加するのが最も良い方法です。その後、すべての変更にだけ、このコードを楽しんで
を説明するために
myJTextPane.setSize(myJTextPane.getWidth(),myJtextPane.getPreferredSize().height);
を呼び出す:
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
public class HelloWorld {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
final JFrame mainFrame = new JFrame("test");
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JTextPane field = new JTextPane();
field.setText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse accumsan magna vel libero bibendum, quis hendrerit nisi rutrum. Cras placerat erat eget dictum ornare. Sed eget nisl quis nibh vehicula mollis. Vestibulum non iaculis erat, quis pulvinar magna. Suspendisse ac rhoncus purus. Quisque finibus, dolor varius tincidunt aliquet, mauris felis condimentum neque, at viverra felis nulla at justo. Duis ut dui velit. Integer vitae mollis leo. Cras quis urna odio. Suspendisse tempus, urna sed maximus fringilla, ante velit finibus massa, id commodo libero quam non ipsum. Sed id augue vitae sapien sagittis imperdiet in eget nibh. Nam semper posuere nisl, dictum efficitur ipsum aliquet ac. Phasellus eros massa, fringilla et neque maximus, pretium tempor magna.");
mainFrame.getContentPane().setLayout(null);
mainFrame.getContentPane().add(field,BorderLayout.CENTER);
field.setLocation(0, 0);
field.setSize(200,40);
field.setSize(200, field.getPreferredSize().height);
mainFrame.setSize(300,500);
mainFrame.setVisible(true);
System.out.println(field.getPreferredSize().width+" , "+field.getPreferredSize().height);
}
});
}
}
関連する問題
- 1. プログラムで固定幅、動的高さUILabel?
- 2. 固定高さと動的幅と高さが
- 3. ジグザググリッドビューの固定高さを動的に設定する
- 4. 幅を変更せずに固定高さを設定する
- 5. iPhone:UIImageのサイズ、幅、高さ、向きを動的に設定する方法は?
- 6. wordpressでdo_shortcodeinの高さと幅を設定する方法は?
- 7. C#でビットマップに幅と高さを設定する方法は?
- 8. 固定幅のJTextPaneの推奨サイズ
- 9. JTextPaneの固定幅フォント/記号
- 10. Apache POIで固定列幅を設定する方法
- 11. レイアウトの固定幅、固定高さのフルハイト、全幅
- 12. ツールチップの幅と高さを動的に設定する
- 13. AndroidのTextViewの幅と高さを動的に設定する
- 14. divの幅/高さをHTMLで100%に設定する方法
- 15. デルファイでフォームの幅と高さを設定する方法
- 16. Cytoscape.jsでビューポートの高さと幅を設定する方法
- 17. RecyclerViewアイテムの高さを動的に設定する方法は?
- 18. 動的なdivの高さを固定
- 19. s:ScatterView ItemTemplate - 高さまたは幅を設定する方法は?
- 20. AsyncImageViewは動的高さで固定されていますか?
- 21. 固定幅と動的高さの用紙でvb.netを使用して印刷する方法
- 22. Android:ImageButtonのsrcイメージの高さ/幅を設定する方法は?
- 23. Zend frameworkバーコードの高さと幅を設定する方法は?
- 24. UIlabelテキストをスクロールして目的のCで幅と高さを動的に設定する方法
- 25. 動的な高さをリストビューに設定する方法
- 26. アンドロイドで相対的なレイアウトの高さを動的に設定する方法
- 27. 固定幅可変高さグリッドCSS
- 28. 幅と高さをリアクション固有のモーダルに設定
- 29. プログラムで設定されたビューの高さまたは幅をリセットまたは設定解除する方法
- 30. 固定幅で左に2列、動的幅で右に
あなたが何かをしようと試みたのですか? –