JButtons 中的自动换行

2022-09-03 17:14:10

是否可以在 JButtons 中实现文本的自动换行?我在运行时创建的动态按钮很少。我想在按钮上放置自动换行功能,以便我可以看到对按钮的更好测试。有可能做到这一点吗?


答案 1

此示例使用 Java 的内置 CSS 渲染功能来完成确定何时进行换行的“繁重工作”。它使用 ,但相同的原则适用于任何将呈现 HTML 的组件。JLabel

固定宽度文本.java

import javax.swing.*;

class FixedWidthText {

    public static void showLabel(int width, String units) {
        String content1 = "<html>"
                + "<body style='background-color: white; width: ";
        String content2 = "'>"
                + "<h1>Fixed Width</h1>"
                + "<p>Body width fixed at ";
        String content3
                = " using CSS.  "
                + "Java's HTML"
                + " support includes support"
                + " for basic CSS.</p>";
        final String content = content1 + width + units
                + content2 + width + units + content3;
        Runnable r = () -> {
            JLabel label = new JLabel(content);
            JOptionPane.showMessageDialog(null, label);
        };
        SwingUtilities.invokeLater(r);
    }

    public static void main(String[] args) {
        showLabel(160, "px");
        showLabel(200, "px");
        showLabel(50, "%");
    }
}

屏幕截图

160 像素

enter image description here

200 像素

enter image description here

50%

enter image description here


答案 2

使用 HTML...

button.setText("<html><center>"+"This is a"+"<br>"+"swing button"+"</center></html>");

推荐