我有幾個這樣的含有用戶輸入JLabel
S和JTextField
在我的Swing應用程序JPanel
秒。LayoutManager可以將JLabel或JTextField的高度與其字體大小進行匹配?
我手動編輯通過了NetBeans GUI Builder生成的代碼,但還是要保持一個類似的佈局。我開始使用GridLayout
。我可以調整hgap
讓我JLabel
S和JTextField
一個正確的大小,但我將不得不對所有的JPanel
S的單獨做到這一點。
是否有標準的LayoutManager
,它將基於組件的字體大小計算文本組件的正確高度,並在包含組件的空間和/或文本組件周圍填充包含組件?
編輯:
按照要求,這裏是一個SSCCE證明什麼,我試圖做
GridLayoutSSCCE:
package gridlayoutsscce;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class GridLayoutSSCCE {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new JFrame("Grid Layout SSCCE");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new GridLayoutSSCCEPanel());
f.pack();
f.setVisible(true);
}
});
}
}
GridLayoutSSCCEPanel:
package gridlayoutsscce;
import java.awt.GridLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
class GridLayoutSSCCEPanel extends JPanel {
public GridLayoutSSCCEPanel() {
this.setLayout(new GridLayout(2, 2));
this.add(new JLabel("Label 1:"));
this.add(new JTextField());
this.add(new JLabel("Label 2:"));
this.add(new JTextField());
}
}
這我第一次運行時看起來很好 該程序。但是,當我調整窗口大小時,文本字段伸出,因此每個都填充窗口的一半高度。我希望它們保持與窗口大小調整時相同的高度。
請修改您的問題以包含使用'GridLayout'並在封閉窗口調用'pack()'的[sscce](http://sscce.org/)。 – trashgod
@trashgod完成。 –
+1對於[sscce](http://sscce.org/)和其他解釋。 – trashgod