【发布时间】:2019-05-24 11:52:00
【问题描述】:
我需要在JPanel 中垂直对齐组件(2 个JTextFields 和1 个JTextArea),然后将此面板放置在已定义框架的中心。
我想要完全一样的。
我试图通过为面板设置不同的布局来做到这一点,但我无法让它工作。在下面的代码中,面板上没有任何内容就可以了。如果我将组件添加到面板,它的行为会有所不同。组件在面板中水平显示。
public class DialogboxExample {
public static void main(String[] args) {
JFrame frame = new JFrame("BoxLayout Example X_AXIS");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
JLabel lblPhone = new JLabel("Name");
lblPhone.setBounds(65, 68, 46, 14);
frame.getContentPane().add(lblPhone);
JTextField textField_1 = new JTextField();
textField_1.setBounds(136, 65, 247, 22);
frame.getContentPane().add(textField_1);
textField_1.setColumns(10);
JLabel lblEmailId = new JLabel("Category");
lblEmailId.setBounds(65, 115, 70, 14);
frame.getContentPane().add(lblEmailId);
JTextField textField_2 = new JTextField();
textField_2.setBounds(136, 112, 247, 22);
frame.getContentPane().add(textField_2);
textField_2.setColumns(10);
JLabel lblAddress = new JLabel("Description");
lblAddress.setBounds(65, 162, 150, 14);
frame.getContentPane().add(lblAddress);
JTextArea textArea_1 = new JTextArea();
textArea_1.setBounds(136, 157, 300, 100);
frame.getContentPane().add(textArea_1);
frame.setSize(300, 300);
frame.getContentPane().add( panel, "Center");
frame.pack();
frame.setVisible(true);
}
}
我希望JTextFields 和JTextArea 垂直堆叠。
有人可以帮我解决这个问题吗?
如果我将GridLayout 添加到面板中,效果会很好,但所有 3 个组件的组件大小相同。
【问题讨论】:
-
以最小尺寸提供 ASCII 艺术或 GUI 的 预期 布局的简单绘图,如果可调整大小,则具有更大的宽度和高度 - 以显示额外空间应该如何被使用。
标签: java swing layout-manager