【发布时间】:2016-02-19 12:56:07
【问题描述】:
我有简单的表格,还有两个数组,JLabels 和 JTextFeilds:
ArrayList<JLabel> jlabels = new ArrayList<JLabel>();
ArrayList<JTextField> textFields = new ArrayList<JTextField>();
我想将它添加到 Frame 并正确打包这些元素(请参见图片)。
请看我的一段代码:
public class ProductForm extends JFrame {
private JPanel contentPane;
public ProductForm() {
initComponents();
actions();
}
public void actions() {
setTitle("Product selection");
setSize(600, 350);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
}
private void initComponents() {
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
ArrayList<JLabel> jlabels = new ArrayList<JLabel>();
ArrayList<JTextField> textFields = new ArrayList<JTextField>();
//for (int a = 0; a < product.list.size(); a++) {
for (int a = 0; a < 7; a++) { // let say 7 for example
jlabels.add(new javax.swing.JLabel());
textFields.add(new javax.swing.JTextField());
for (JLabel j:jlabels) {
contentPane.add(j);
}
for (JTextField f:textFields) {
contentPane.add(f);
}
}
pack();
}
请帮助我如何正确打包这些元素。 我应该以某种方式初始化它吗?
感谢您的帮助。
【问题讨论】:
-
使用
GridLayout或GridBagLayout获取所需的格式。 -
@PragnaniKinnera,我不知道应该在哪里添加布局。我的意思是在代码的哪个位置?你能给我建议吗?请
-
在你的构造函数中调用
setLayout(new GridLayout(-))。 -
如果为文本字段提供了一些大小提示,原始代码会更好。所以
textFields.add(new javax.swing.JTextField());最好是textFields.add(new javax.swing.JTextField(10)); //adjust col # to suit need -
@EvgEvg 检查我的更新
标签: java swing jframe jtextfield form-layout