Java swing:複数行のラベル?[重複]
質問
可能な重複:
複数行テキストJLabel
こういう仕事がしたい:
JLabel myLabel = new JLabel();
myLabel.setText("This is\na multi-line string");
現在、この結果はラベルに表示する
This isa multi-line string
たいすることができるようになりますこの替り:
This is
a multi-line string
ご意見募集
ご
編集:実施液
体の方法:
myLabel.setText(convertToMultiline("This is\na multi-line string"));
ヘルパー方法:
public static String convertToMultiline(String orig)
{
return "<html>" + orig.replaceAll("\n", "<br>");
}
解決
あなたはHTML
でJLabels
を使用することができます。それを使用するには、テキストが<html>
で始める必要があります。
"<html>This is<br>a multi-line string"
にテキストを設定し、それが動作するはずです。
を参照してください。チュートリアルスイング:JLabelの詳細については、>とマルチラインラベル(HTML)の。
他のヒント
public class JMultilineLabel extends JTextArea{
private static final long serialVersionUID = 1L;
public JMultilineLabel(String text){
super(text);
setEditable(false);
setCursor(null);
setOpaque(false);
setFocusable(false);
setFont(UIManager.getFont("Label.font"));
setWrapStyleWord(true);
setLineWrap(true);
//According to Mariana this might improve it
setBorder(new EmptyBorder(5, 5, 5, 5));
setAlignmentY(JLabel.CENTER_ALIGNMENT);
}
}
これは完全に私のために同じに見えますが、その醜い
もう一つの簡単な方法は、(ただし、テキストスタイルを少し変更)<pre></pre>
のHTMLブロックを使用することです。
これは、任意の使用している文字列は、ユーザの入力ボックスから来た場合に、ユーザーが入力します。
の書式設定を保持します例:
JLabel label = new JLabel("<html><pre>First Line\nSecond Line</pre></html>");
JLabelの中で複数行のテキストを書くの直接的な手順があります:
JLabel label = new JLabel("<html>First Line<br>Second Line</html>");
JLabel
または任意のSwingコンポーネントにHTMLを使用しての問題はあなただということでOK、細かいます。
setFont
、setForeground
、とスタイルにそれを持っているということです
そうしないと、JIDEから MultilineLabel のようなものを使用することができ、これJTextArea
を拡張します。彼らのオープンソースのそれの一部 Commomレイヤでます。
JLabelのHTMLコードを受け入れることができます。たぶん、あなたは<br>
タグを使用しようとすることができます。
例:
JLabel myLabel = new JLabel();
myLabel.setText("<html> This is a <br> multi-line string </html>");
所属していません StackOverflow