调整大小后,JLabel文本在JPanel中消失

时间:2012-01-12 13:49:04

标签: java swing resize jpanel jlabel

我有两个渲染器。其中一个扩展了JTextArea,另一个继承了JPanel。我使用GridBagLayout将它们添加到另一个JPanel。

当调整JTextArea的大小时,我至少可以看到一些文本。在JPanel的情况下,我有两个标签,如果JPanel很小,它们会完全消失。

有没有办法让JLabel调整大小而不是消失?


感谢您的回答!

为JPanel使用BoxLayout并指定最小,首选和最大尺寸解决了我的问题。

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用框架的setMinimumSize(Dimension)方法?

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

看一下documentation告诉我你所看到的行为与平台有关,所以如果你有多个平台,那么测试你在每个平台上的代码可能是个好主意。看哪些有效,哪些无效。

以下示例代码在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);
    }
}

答案 1 :(得分:-2)

检查面板的布局管理器。