为了账号安全,请及时绑定邮箱和手机立即绑定

JLabel-将较长的文本显示为多行?

JLabel-将较长的文本显示为多行?

墨色风雨 2019-09-27 15:30:55
所以说我要在一行中显示很长的一行JLabel。我该怎么做?当前,更长的行出现了:在此处输入图片说明我必须调整窗口大小才能查看全文。如何使文本几乎达到我的宽度时出现换行符JFrame?我不确定这里是否需要任何代码来回答这个问题,但是仍然:我的镜框属性:frame = new JFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(new Dimension(450, 400));frame.setLocation(new Point(400, 300));frame.setLayout(new BorderLayout());我要修改的标签:question = new JLabel("Question:");question.setFont(new Font("Serif", Font.BOLD, 15));question.setHorizontalAlignment(JLabel.CENTER);编辑:更多详细信息:我正在从文件中读取行,然后显示它们。线的大小不是固定的,所以我不知道放在哪里<br>。编辑2:我最终使用JTextArea。private JTextArea textAreaProperties(JTextArea textArea) {    textArea.setEditable(false);      textArea.setCursor(null);      textArea.setOpaque(false);      textArea.setFocusable(false);    textArea.setLineWrap(true);    textArea.setWrapStyleWord(true);    return textArea;}
查看完整描述

3 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

另一个例子,表明使用正确的布局管理器,HTML标签中包裹的文本将自动包装到可用空间...


在此处输入图片说明


public class TestHTMLLabel {


    public static void main(String[] args) {

        new TestHTMLLabel();

    }


    public TestHTMLLabel() {

        EventQueue.invokeLater(new Runnable() {

            @Override

            public void run() {

                try {

                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {

                }


                StringBuilder sb = new StringBuilder(64);

                sb.append("<html>I have something to say, it's beter to burn out then to fade away.").

                                append("  This is a very long String to see if you can wrap with in").

                                append("the available space</html>");


                JLabel label = new JLabel(sb.toString());


                JFrame frame = new JFrame("Test");

                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                frame.setLayout(new BorderLayout());

                frame.add(label);

                frame.setSize(100, 100);

                frame.setLocationRelativeTo(null);

                frame.setVisible(true);

            }    

        });

    }        

}


查看完整回答
反对 回复 2019-09-27
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

使用HTML在标签内显示文本。


JLabel fancyLabel = new JLabel("<html>Punch Taskmaster</html>");

(添加了Taskmaster建议的示例)


查看完整回答
反对 回复 2019-09-27
  • 3 回答
  • 0 关注
  • 893 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信