AWT组件Label的文本中使用HTML标签为何无法生效?
AWT Label能否用HTML标签实现逐行显示?
不行,AWT的Label组件完全不支持HTML标签解析,你写的<html>和<br>会被当作普通文本直接输出,这就是代码没生效的原因。
两种可行的解决办法:
- 改用Swing的
JLabel组件:Swing的JLabel原生支持HTML渲染,只需要把代码里的Label换成JLabel,你的HTML换行代码就能正常工作,示例代码:
JLabel slabel = new JLabel("<html>line 1 <br>line 2</html>"); slabel.setBounds(22, 47, 248, 43); slabel.setVisible(true); // 注意设为true才能显示 add(slabel);
- 坚持用AWT组件的话,换用
TextArea模拟多行文本标签:TextArea支持多行显示,你可以设置它不可编辑、去掉边框,视觉效果和Label接近,示例代码:
TextArea slabel = new TextArea("line 1\nline 2"); slabel.setBounds(22, 47, 248, 43); slabel.setEditable(false); // 禁止编辑 slabel.setVisible(true); add(slabel);
内容的提问来源于stack exchange,提问作者Denzil.A
相关产品推荐
相关产品推荐

