0
我是Java UI設計的新手,我嘗試使用SpringLayout
來創建表單。 我把JLabel
放在JFrame
,加了一些限制。我需要JLabel
打到JPanel
寬度。但它沒有高度。寬度太小。爲什麼JLabel在使用SpringLayout時高度爲零?
這裏的代碼片段:
imageContainer = new JLabel();
imageContainer.setBorder(BorderFactory.createLineBorder(Color.BLACK));
filterButton = new JButton("Filter");
filterButton.addActionListener(filter);
layout.putConstraint(SpringLayout.WEST, imageContainer, 5, SpringLayout.WEST, this);
layout.putConstraint(SpringLayout.NORTH, imageContainer, 5, SpringLayout.NORTH, this);
layout.putConstraint(SpringLayout.EAST, imageContainer, 5, SpringLayout.EAST, this);
layout.putConstraint(SpringLayout.WEST, filterButton, 5, SpringLayout.WEST, this);
layout.putConstraint(SpringLayout.NORTH, filterButton, 5, SpringLayout.SOUTH, imageContainer);
layout.putConstraint(SpringLayout.SOUTH, filterButton, 5, SpringLayout.SOUTH, this);
這是result
我有什麼錯?如何將JLabel
大小拉伸到父容器?
*「這裏是代碼片段:」*爲了更好地提供幫助,請發佈[MCVE]或[簡短,獨立,正確的示例](http://www.sscce.org/)。順便說一句 - 直到標籤包含圖標和/或文本,其首選大小將爲0x0。 –
我想稍後將圖像放入JLabel。但是如果我想劃分(縮放)圖像,我需要知道JLabel大小。 –
MCVE在哪裏?順便說一句 - 標籤會根據內容(例如圖像)返回首選尺寸。可能更好的方法是通過在'JPanel'中自定義繪製圖像來重寫getPreferredSize()方法來產生邏輯最小值。然後1)面板將被佈局分配空間。 2)自定義繪畫可以根據面板的尺寸來繪製圖像。 –