Ограничения переполнения кнопки переплета - PullRequest
0 голосов
/ 28 июня 2010

Я использую Miglayout для создания табличного макета для одной из моих панелей. Мне нужно, чтобы все мои панели имели фиксированную ширину 200 пикселей. Когда я добавляю компоненты на панель, все работает нормально, но когда я пытаюсь вставить кнопку с длинным текстом (и поэтому для ее отображения требуется больше места, чем 200 пикселей), кнопка переполняет свою ячейку и перекрывает соседние кнопки. Этот код должен продемонстрировать мою проблему:

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 пикселей, а затем, возможно, некоторые завершающие периоды, такие как «Кнопка с версией ...»

Есть ли у кого-нибудь идеи, как этого добиться?

(вы можете получить миграцию с здесь для тестирования)

1 Ответ

2 голосов
/ 28 июня 2010

Просто скачал макет, чтобы проверить его.Ваше решение просто:

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

Это сработало для меня.

...