在Java項目中我的工作,我的約束最初設置爲:需要幫助瞭解一些列約束行爲
JPanel panel = new JPanel();
String layoutConstraints = "fill";
String columnConstraints = "[right]rel[grow]";
String rowConstraints = "[]10[]";
panel.setLayout(new MigLayout(layoutConstraints, columnConstraints, rowConstraints));
從我瞭解的文檔的最後差距和約束將重複每一個的排超過規格。 (參見「如果格式字符串中的行少於該維度中的網格單元格中的行數,則最後的間隔和行約束將用於額外的行」)。
因此,對於我理解的所有應該意味着行約束實際上是[]10[]10[]10[]
等等。
我的問題是當我在JScrollPane一個JTextArea具有行設置爲3:
JLabel label = new JLabel("Text area");
JTextArea text = new JTextArea("Test", 3, 40);
JScrollPane scroll = new JScrollPane(text);
panel.add(label);
panel.add(scroll, "grow,wrap");
當的[]10[]
行限制使用的只有1行高,但是當我改變
String rowConstraints = "[]10[]";
到
String rowConstraints = "[]";
突然使用了完整的3行高,我符合規範適用於JTextArea。
我誤解了行約束是如何工作的還是在工作中還有別的東西,我完全沒有看到/理解?
我一直在設計我的用戶界面時一直使用調試,直到完成。 我也知道JTextArea的行與行約束無關。 我的主要問題是,爲什麼,如果'[] 10 []'意味着[] 10 [] 10 [] 10 []'(對於所有行都是如此),爲什麼'[]'的重複行約束'[]'case允許'JScrollPane' +'JTextArea'爲3行(如'JTextArea'指定的那樣),而'[] 10 []'中的'10 []'的重複行約束將它壓到只需1排。 – asmodai
你已經找到解決你的問題的解決方案嗎? –