2010-03-30 193 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

回答

相關問題