2012-01-12 52 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