我有两个渲染器。其中一个扩展了JTextArea,另一个继承了JPanel。我使用GridBagLayout将它们添加到另一个JPanel。
当调整JTextArea的大小时,我至少可以看到一些文本。在JPanel的情况下,我有两个标签,如果JPanel很小,它们会完全消失。
有没有办法让JLabel调整大小而不是消失?
感谢您的回答!
为JPanel使用BoxLayout并指定最小,首选和最大尺寸解决了我的问题。
答案 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)
检查面板的布局管理器。