【问题标题】:Java: JScrollPane JLabel too close to edgeJava:JScrollPane JLabel 太靠近边缘
【发布时间】:2014-04-27 18:28:51
【问题描述】:

我在 jscrollpane 中有一个 jlabel,使用 html 对其进行格式化。代码在 github here 上,问题是两个 h1 标签内的文本都离左边太近,即使向右对齐也是如此。任何帮助将不胜感激:)

package malgm.minecraft.versioninstaller.ui.tabs.credits;

import java.awt.BorderLayout;

import javax.swing.*;

import malgm.minecraft.versioninstaller.*;
import malgm.minecraft.versioninstaller.ui.TechUI;
import malgm.minecraft.versioninstaller.ui.controls.TiledBackground;

public class CreditsInfoPanel extends TiledBackground {

    private static final long serialVersionUID = 1L;

    private static ResourceFinder resFinder = new ResourceFinder();
    private Data data = new Data();

    public CreditsInfoPanel(ResourceLoader loader) {
        super(loader.getImage(resFinder.background()));

        BorderLayout layout = new BorderLayout();
        setLayout(layout);

        // Welcome text
        JLabel text = new JLabel("<html>"
                + "<div align=\"right\">"
                + "<h1>" + data.getMVIName() +" build "+ data.getMVIBuild() +"</h1>"
                + "</div>"
                + "<center>"
                + "<h3>Development team:</h3>"
                + "<p>malgm (Jamie)</p>"
                + "<h3>Special thanks to:</h3>"
                + "<p>The Technic Team without them I wouldn't have this design.</p>"
                + "<p>Github for having such a wonderful service.</p>"
                + "<br />"
                + "</center>"
                + "<div align=\"right\">"
                + "<h1>" + data.getMMLName() +" build "+ data.getMMLBuild() +"</h1>"
                + "</div>"
                + "<center>"
                + "<h3>Development team:</h3>"
                + "<p>malgm (Jamie)</p>"
                + "</center></html>");
        text.setForeground(TechUI.COLOR_WHITE_TEXT);

        JScrollPane s = new JScrollPane(text);
        s.setOpaque(false);
        s.getViewport().setOpaque(false);
        s.setBorder(null);

        add(s, BorderLayout.CENTER);
    }

}

【问题讨论】:

  • 嗨!您应该在 SO 上发布您的代码。这样,即使您的项目代码更改或被删除,它也会永久记录下来,从而使该问题在将来很有用。
  • 我已经留下了一个 Github 链接。
  • 我知道。你错过了我的观点。当您更改代码或项目消失时,这个问题将如何有用? Stack Overflow 不在这里只是为了让您回答您的问题,而是作为长期帮助的存储库。
  • 好的,当 Github 开始工作时(我重命名了存储库)我将发布代码:)

标签: java html swing jlabel scrollpane


【解决方案1】:

试试这个: text.setBorder(BorderFactory.createEmptyBorder(15, 15, 15, 15));

【讨论】:

  • 感谢快速编辑使其看起来正确,它工作! text.setBorder(BorderFactory.createEmptyBorder(15, 60, 15, 60));
  • 在看到其他答案后,我认为我误解了这个问题,但我很高兴它对你来说很好:-)
  • 另一个答案改变了 HTML 中的边距/边框,而不是 Java。 :)
【解决方案2】:

尝试添加margin-left

"<div style='margin-left: 10px;'>"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多