JLabel
のテキストを複数行の形式にしたい場合は、テキストが長すぎます。 Javaでこれをどのようにすることができますか?複数行のJLabels - Java
答えて
私はあなたが単語の末尾に行を変更する方法.setWrapStyleWord(true)を使用することができる代わりに、JLabelの
のJTextAreaのを使用することをお勧めして、JTextAreaに上。
html
タグにラベルテキストをラップしても構わない場合、JLabelは、コンテナの幅が狭すぎてすべてを保持できない場合、自動的にラップします。例えば、GUIにこれを追加してみてください、その後、狭すぎるようにGUIのサイズを変更する - それがラップします:
new JLabel("<html>This is a really long line that I want to wrap around.</html>");
を表示するためのJLabel、テキスト編集のためであり、あなたがそこにもで
を使用することができます! –
11684
を私はJLabelのスタイルをエミュレートし、独自のカスタム・コンポーネントを作成することをお勧めラップながら:
import javax.swing.JTextArea;
public class TextNote extends JTextArea {
public TextNote(String text) {
super(text);
setBackground(null);
setEditable(false);
setBorder(null);
setLineWrap(true);
setWrapStyleWord(true);
setFocusable(false);
}
}
new TextNote("Here is multiline content.");
をあなたは高さを計算するpack()
にしたい場合は、行(textNote.setRows(2)
)の量を設定していることを確認してください:
は次に、あなただけ呼び出す必要があります親コンポーネントの
実際のラベルのルック・アンド・フィールを再現するためのいくつかの追加機能があります: 'setOpaque(false);''setFont(UIManager.getFont(" Label.font "));' – HughHughTeotl
HTMLではuse (basic) CSSになる可能性があります。
自動で複数行のラベルの高さを調整します。ラベル
で ラップテキストはprivate void wrapLabelText(JLabel label, String text) {
FontMetrics fm = label.getFontMetrics(label.getFont());
PlainDocument doc = new PlainDocument();
Segment segment = new Segment();
try {
doc.insertString(0, text, null);
} catch (BadLocationException e) {
}
StringBuffer sb = new StringBuffer("<html>");
int noOfLine = 0;
for (int i = 0; i < text.length();) {
try {
doc.getText(i, text.length() - i, segment);
} catch (BadLocationException e) {
throw new Error("Can't get line text");
}
int breakpoint = Utilities.getBreakLocation(segment, fm, 0, this.width - pointerSignWidth - insets.left - insets.right, null, 0);
sb.append(text.substring(i, i + breakpoint));
sb.append("<br/>");
i += breakpoint;
noOfLine++;
}
sb.append("</html>");
label.setText(sb.toString());
labelHeight = noOfLine * fm.getHeight();
setSize();
}
おかげで、 Jignesh Gothadiya
- 1. Java。グローバルJLabels
- 2. JFrame内の重複するJLabels
- 3. 複数行のJava RowFilter
- 4. 複数行テキストのJavaアノテーションユーティリティ
- 5. JAVAエンド複数行入力
- 6. Javaを使ったメッセンジャーアプリのための動的JLabelsの作成
- 7. jpanelのjlabelsの検索バー
- 8. JLayeredPane上の透明なJLabels
- 9. のJava 7 - 複数行の文字列
- 10. Javaプログラムの複数の実行時間
- 11. 複数のHTMLテーブル行のJavaループ
- 12. 複数のJavaエージェントの同時実行
- 13. JavaでJLabelsにテキストをバインドする方法は?
- 14. のJava複数の行をスキャンするファイルと変数の型
- 15. 複数のJava ActionListeners
- 16. 複数のリーダーファイルjava
- 17. 複数のキーリストナーJava
- 18. 優先/最大/最小サイズのテキストラッピングJLabels
- 19. arraylistをJavaスイングで別個のjlabelsとして表示するには?
- 20. JLabelsをJava GUI上の絶対位置に配置する方法
- 21. ScrollPaneに埋め込まれたパネルにJLabelsを追加するJava
- 22. 複数の行
- 23. BorderLayoutとjlabelsを並べて表示
- 24. オーバーレイされたJLabelsを追加する
- 25. ランダムに塗りつぶされたJLabels
- 26. JLabelsは表示されません
- 27. JLabelsとJframeに問題がある
- 28. JPanel(null)がJLabelsを表示しない
- 29. Javaのネットワーク、クライアントの複数の応答行の 'readLine()'
- 30. Javaの複数のjsonバインディング
JTextAreaには... –