我正嘗試在MigLayout中創建一個表單。我希望任何文本字段都使用前面的小JLabel進行標記,隨着空間可用,文本字段會不斷增大。我能夠成功地做到這一點在下面的代碼:防止JLabel在MigLayout中增長
JFrame frame = new JFrame("Test");
JPanel panel = new JPanel(new MigLayout("", "fill", ""));
panel.add(new JLabel("Testing"));
panel.add(new JTextField(), "growx, pushx, wrap");
frame.setContentPane(panel);
frame.pack();
frame.setMinimumSize(new Dimension(400, 100));
frame.setPreferredSize(new Dimension(400, 100));
frame.setVisible(true);
結果看起來是這樣的,這是因爲預期(選擇JLabel是最小必要大小,JTextField的佔用面積的其餘部分):
但是,如果我把低於這個JEditorPane中,並將它跨越了整個窗口的長度,選擇JLabel變大,如果我放大窗口增長。代碼變化如下:
...
panel.add(new JTextField(), "growx, pushx, wrap");
//New line of code here:
panel.add(new JEditorPane(), "growx, pushx, span");
frame.setContentPane(panel);
...
導致我不指望一個結果(JLabel的增長):
我已經嘗試通過增加MigLayout參數來解決這個問題對於JLabel,如"growx 0"
和"shrink"
,但這似乎對標籤的大小沒有任何影響。
如何防止JLabel在這種情況下增長?
你嘗試過「W分鐘」? – 2013-05-01 05:13:37
我有,但我更喜歡一個不需要我硬編碼大小的答案。 – Thunderforge 2013-05-01 19:42:18