我有两个渲染器。其中一个扩展了JTextArea,另一个继承了JPanel。我使用GridBagLayout将它们添加到另一个JPanel。JLabel文字在调整后在JPanel中消失
当调整大小的JTextArea时,我至少可以看到一些文字。在JPanel的情况下,我有两个标签,如果JPanel很小,它们会完全消失。
有没有办法让JLabel被调整大小而不是消失?
感谢您的回答!
将BoxLayout用于JPanel并指定最小,首选和最大尺寸解决了我的问题。
我有两个渲染器。其中一个扩展了JTextArea,另一个继承了JPanel。我使用GridBagLayout将它们添加到另一个JPanel。JLabel文字在调整后在JPanel中消失
当调整大小的JTextArea时,我至少可以看到一些文字。在JPanel的情况下,我有两个标签,如果JPanel很小,它们会完全消失。
有没有办法让JLabel被调整大小而不是消失?
感谢您的回答!
将BoxLayout用于JPanel并指定最小,首选和最大尺寸解决了我的问题。
您是否尝试过使用帧的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);
}
}
为了更好地帮助越早,请包括[SSCCE(http://www.sscce.org)。 – mre 2012-01-12 13:55:13
“renderer”是什么意思?真的是XXCellRenderer,将该面板作为渲染组件进行销售?如果没有,不要使用这个词,你会迷惑我;-) – kleopatra 2012-01-12 14:17:26
我的意思是说我有两个组件。其中之一是JTextArea,它可以正常工作,因为它可以显示至少一些文本。 JPanel隐藏了整个JLabel。是不是意味着我需要编写自己的代码来调整JPanel中的每个组件的大小? – dmiandre 2012-01-12 14:38:21