java - Miglayout 按钮溢出约束

标签 java layout miglayout

我正在使用 Miglayout 为我的一个面板创建类似表格的布局。我需要所有面板的固定宽度为 200 像素。当我在面板中添加组件时,一切正常,但是当我尝试插入一个具有长文本的按钮(因此需要超过 200 px 的空间来显示)时,按钮会溢出其单元格并与相邻按钮重叠。这段代码应该说明我的问题:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

import net.miginfocom.swing.MigLayout;


/**
 * @author Savvas Dalkitsis
 */
public class Test {

    public static void main(String[] args) {
        JFrame f = new JFrame();
        JPanel content = new JPanel(new MigLayout("wrap 5","[200!]","[50!]"));
        JButton b = new JButton("Button 1");
        content.add(b,"growx");
        b = new JButton("Button 2");
        content.add(b,"growx");
        b = new JButton("Button with a very long text which should not be visible");
        content.add(b,"growx");
        b = new JButton("Button 4");
        content.add(b,"growx");
        b = new JButton("Button 5");
        content.add(b,"growx");
        b = new JButton("Button 6");
        content.add(b,"growx");
        b = new JButton("Button 7");
        content.add(b,"growx");
        b = new JButton("Button 8");
        content.add(b,"growx");
        b = new JButton("Button 9");
        content.add(b,"growx");
        b = new JButton("Button 10");
        content.add(b,"growx");
        f.setContentPane(content);
        f.pack();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

}

我想要的是按钮来显示它可以容纳在 200 像素中的所有文本,然后可能是一些尾随句点,例如“带有版本的按钮...”

有人知道如何实现这一目标吗?

(可以从 here 获取 miglayout 进行测试)

最佳答案

刚刚下载了布局来查看。您的解决方案只是:

    b = new JButton("Button with a very long text which should not be visible");
    content.add(b,"growx, wmax 200");

这对我有用。

关于java - Miglayout 按钮溢出约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3133066/

相关文章:

java - JSplitPane + MiGLayout : how to enable proportional autoresizing

将代码添加到循环中时,Java 循环不循环

java - 为什么接口(interface)中的静态方法不需要默认访问修饰符?

facebook - Facebook 的 Like 按钮的纯文本版本?

java - 如何防止 MigLayout 超出容器的边界

java - 当 MigLayout 的 JLabel 文本太长时,如何自动中断 JLabel 的文本?

java - Java Web 应用程序中的内存泄漏

java - Java 中的颜色检测器

java - 小部件和复合 Material 不会根据外壳大小调整大小

html - 使用 CSS 堆叠 Div