Текст JLabel исчезает в JPanel после изменения размера - PullRequest
4 голосов
/ 12 января 2012

У меня есть два рендера. Один из них расширяет JTextArea, а другой наследует JPanel. Я добавляю их в другую JPanel с помощью GridBagLayout.

При изменении размера JTextArea я вижу хоть какой-то текст. В случае JPanel у меня есть две метки, и если JPanel слишком мала, они полностью исчезают.

Есть ли способ изменить размер JLabel вместо того, чтобы вообще исчезнуть?


Спасибо за ваши ответы!

Использование BoxLayout для JPanel и указание минимального, предпочтительного и максимального размеров решило мою проблему.

Ответы [ 2 ]

1 голос
/ 13 января 2012

Вы пытались использовать метод setMinimumSize(Dimension) вашего фрейма?

frame.setMinimumSize(new Dimension(100, 100));

Просмотр документации говорит мне, что поведение, которое вы видите, зависит от платформы, так что если выиметь несколько платформ, это может быть хорошей идеей для тестирования кода, который вы имеете на каждой из них;посмотрите, какие из них работают, а какие нет.

Следующий пример кода работает для меня, как требуется для Windows Vista:

import javax.swing.JFrame;
import java.awt.Dimension;

public class Ex extends JFrame {
    public static void main(String[] args) {
        JFrame frame = new JFrame("YOU CAN'T SHRINK ME COMPLETELY!");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 400);
        frame.setMinimumSize(new Dimension(100, 100));
        frame.setVisible(true);
    }
}
0 голосов
/ 12 января 2012

проверьте менеджер раскладки панели.

...