2010-03-30 122 views
1

这里是我的代码:为什么SetMinimumSize设置最小高度但不是宽度?

import javax.swing.*; 
import java.awt.*; 

public class PanelModel { 
    public static void main(String[] args) { 
     JFrame frame = new JFrame("Colored Trails"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JPanel mainPanel = new JPanel(); 
     mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS)); 

     JPanel firstPanel = new JPanel(); 
     firstPanel.setLayout(new GridLayout(4, 4)); 
     firstPanel.setMaximumSize(new Dimension(4*100, 4*100)); 
     firstPanel.setMinimumSize(new Dimension(4*100, 4*100)); 
     JButton btn; 
     for (int i=1; i<=4; i++) { 
      for (int j=1; j<=4; j++) { 
       btn = new JButton(); 
       btn.setPreferredSize(new Dimension(100, 100)); 
       firstPanel.add(btn); 
      } 
     } 

     mainPanel.add(firstPanel); 
     frame.add(mainPanel); 

     frame.setSize(520,600); 
     //frame.setMinimumSize(new Dimension(520,600)); 
     frame.setVisible(true); 
    } 
} 

当我增加窗口(鼠标)的大小,我看到我的面板不增加它的大小。这是预期的行为(因为我设置了面板的最大尺寸)。但是,当我减小窗口的大小时,我发现面板的宽度也会减小(而高度是恒定的)。

因此,setMinimumSize只能部分工作。这是为什么?

+1

会http://stackoverflow.com/questions/1345902/jmenuitem-setminimumsize-doesnt-work帮助吗? – VonC 2010-03-30 12:14:37

回答