当前位置: 首页 > 知识库问答 >
问题:

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

宰父焕
2023-03-14

因此,假设我有一个非常长的行,我想在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);

最后我使用了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;
}

共有1个答案

窦夜洛
2023-03-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);
            }    
        });
    }        
}
 类似资料:
  • 问题内容: 如何将长文本放入固定宽度的列中,在其中我只能容纳一行文本?文本需要剪切为固定宽度 (可以说为100px) ,我想在末尾添加点“ …”。例如: 给定字符串: 固定宽度列中的所需输出应为: 问题答案: 您可以单独使用CSS来做到这一点: 注意:您将需要检查最新的浏览器支持。

  • 我试图在GUI中显示卡片,我希望重叠卡片以节省空间。然而,我似乎无法让它发挥作用。我目前正在使用MigLayout,但感觉它更像是一个JLabel问题,而不是其他问题。 要把它描述在一个高水平,考虑在现实生活中玩纸牌游戏。当你正常拿牌时,你只需要看到牌的一部分,因此牌的大部分被另一张牌重叠,以此类推,直到最后一张牌完全显示出来,因为上面没有任何东西。我想重叠的方式,只有一部分卡下面显示,然后顶部的

  • 问题内容: 我希望在JLabel中垂直显示文本,第一个字母在底部,最后一个字母在顶部。这可能吗? 问题答案: 我找到了以下页面:http : //www.java2s.com/Tutorial/Java/0240__Swing/VerticalLabelUI.htm。 我不知道您是否希望字母彼此“站立”或全部旋转。

  • 问题内容: 我搜索了许多帖子,发现支持HTML。所以我可以做 得到多行。上面的代码将导致 但是,我想要的是 仅在窗口不可调整大小(并且非常愚蠢)时,才可以在“按:”之前添加空格。谁能告诉我如何修改此代码以使其按我的意愿工作? 问题答案: HTML比@MadProgrammer的答案略简单:

  • 我有多个文本文件,大约有100,000行,我想将它们拆分成每个5000行的较小文本文件。 我曾经: 这将创建文件: 没有扩展名的文件。我只是想给他们打个类似的电话: 或者,如果这不可能,我只希望他们有“.txt”扩展名。

  • 问题内容: Java可以显示png,jpg和其他图片格式,但是我必须通过获取文件路径在JLable中显示bmp文件。 ImageIcon支持典型图像。 在我正在工作的项目中,我无法打开bmp文件并以jpg格式存储同一文件,因为我不允许在运行时存储某些内容。我只能将图像保存在内存中。但是我不知道该怎么做。 我怎样才能显示在 ? 谢谢 问题答案: 我发现一些用Java 1.5编写的类,但是您可以轻松更