我有几个这样的含有用户输入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