次のコードに示すように、エラーメッセージを表示するJLabelオブジェクトがあります。私が理解しているように、メッセージがhtmlタグ内に埋め込まれている場合、ラベルは単語ラップになっています。しかし、私の場合、ラベルは横に広がっているようです。誰かが私に正しいことをしていないことを教えてもらえますか?または、長いエラーメッセージを表示するより良い方法はありますか?JLabelはワープロ展開ではありません。
ここでは、コードです:
public class MyPanel extends JPanel {
public MyPanel() {
this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
// Several JPanel objects inside
// The last JPanel to show error messages
JPanel panelErrMsg = new JPanel(new FlowLayout(FlowLayout.LEFT));
this._lblError = new JLabel();
this._lblError.setBorder(BorderFactory.createEmptyBorder(20, 10, 10, 10));
this._lblError.setForeground(Color.RED);
this._lblError.setFont(new Font("Courier New", Font.BOLD, 12));
panelErrMsg.add(this._lblError);
this.add(panelErrMsg);
}
private void DisplayMessage(String msg) {
String newMessage = "<html><body>" + msg + "</body></html>";
this._lblError.setText(newMessage);
}
}
代わりに 'setEditable(false)'で 'JTextPane'を使ってみてください。 – Sheriff
編集不可能なJTextAreaはJTextPaneよりも簡単です。それが私がお勧めするものです。また、これは: "私が理解するように、メッセージがhtmlタグの中に埋め込まれていれば、ラベルは単語ラップになっているはずですが、正しくありません。 –
ちょっと遊んだ後、私が気づいたのは、ラベルの周りのパネルがラベルを折り返さないようにすることです。パネルを取り外すと折り返します。ただし、テキストはウィンドウの中央から始まり、残されません。 LEFT_ALIGNMENTのsetAlignmentXは違いはありません。 – Peter