您需要設置最小/首選/最大的面板尺寸,否則將BoxLayout
不知道如何正確的尺寸分配給您的潘內爾。見this tutorial。
下面是您可以使用的代碼示例。如果更改各種尺寸,或者對setMinimumSize()
和setPreferredSize()
方法調用發表評論,您將看到對面板繪製方式的影響。我將row
面板的背景設置爲紅色,以便您可以在測試過程中輕鬆看到面板。
JFrame frame = new JFrame ("Test");
frame.setSize (new Dimension (500, 500));
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
Container contentPane = frame.getContentPane();
contentPane.setLayout (new BoxLayout (contentPane, BoxLayout.PAGE_AXIS));
JPanel row = new JPanel();
row.setBackground (Color.RED);
row.setLayout(new BoxLayout(row, BoxLayout.LINE_AXIS));
row.setMinimumSize (new Dimension (100, 100));
row.setPreferredSize (new Dimension (250, 200));
row.setMaximumSize (new Dimension (500, 300));
contentPane.add(row);
frame.setVisible (true);
來源
2013-05-31 15:41:35
Laf
使用'BoxLayout'的任何特殊原因?你爲什麼不使用'BorderLayout'? – ntalbs
這是BoxLayout的默認行爲。發佈你的'SSCCE'來證明問題。 – camickr