2012-01-12 55 views
4

我有两个渲染器。其中一个扩展了JTextArea,另一个继承了JPanel。我使用GridBagLayout将它们添加到另一个JPanel。JLabel文字在调整后在JPanel中消失

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

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


感谢您的回答!

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

+2

为了更好地帮助越早,请包括[SSCCE(http://www.sscce.org)。 – mre 2012-01-12 13:55:13

+1

“renderer”是什么意思?真的是XXCellRenderer,将该面板作为渲染组件进行销售?如果没有,不要使用这个词,你会迷惑我;-) – kleopatra 2012-01-12 14:17:26

+0

我的意思是说我有两个组件。其中之一是JTextArea,它可以正常工作,因为它可以显示至少一些文本。 JPanel隐藏了整个JLabel。是不是意味着我需要编写自己的代码来调整JPanel中的每个组件的大小? – dmiandre 2012-01-12 14:38:21

回答

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); 
    } 
} 
-2

检查面板的布局管理器。

+3

该问题指出正在使用GridBagLayout。 – camickr 2012-01-12 15:55:52

+0

他说使用GridBagLayout作为外部面板,而不是包含标签的那个 – xyz 2012-01-13 07:15:55

+0

检查布局管理器如何帮助解决问题? – camickr 2012-01-13 17:24:44