Java - 如何自动生成输入字段?

时间:2017-03-22 14:00:21

标签: java input field dynamically-generated

我正在工作,尝试和失败已经有一段时间了。我需要生成额外的输入字段。在我的SQL数据库中,我有两个表,一个表示我需要生成多少额外字段以及什么类型(对于初学者只输入字段)。另一个表格,我将我的数据写入这些字段。所以我将所有这些数据作为JSON字符串获取并将其转换为字符串。现在我将所有这些数据作为字符串获取并基于此数据我需要生成y类型的x字段(在本例中为输入字段)。

现在代码只是生成一个输入字段。我根本不知道如何连接信息和字段的创建:(

这是我的代码:

JSONObject jsonObjectZusatz = new JSONObject(ZusatzString); 
int ZusatzJSONlength = jsonObjectZusatz.length();
for(int key1 = 0; key1 < ZusatzJSONlength; key1++){
  JSONObject jsonObjectZusatzObjekt0 = jsonObjectZusatz.getJSONObject(String.valueOf(key1));  
  String ZusatzNameJSON = jsonObjectZusatzObjekt0.getString("name");  // String auslesen!!!
  String ZusatzTypJSON = jsonObjectZusatzObjekt0.getString("typ");  // String auslesen!!!
  String ZusatzEintragJSON = jsonObjectZusatzObjekt0.getString("eintrag");  // String auslesen!!!

  JTextField ZFtextField = new JTextField();
  ZFtextField.setBounds(118, 260, 136, 20);
  contentPane2.add(ZFtextField);
  ZFtextField.setColumns(10);

  JLabel lblNewLabel = new JLabel("Stuff:");
  lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 15));
  lblNewLabel.setBounds(12, 263, 46, 14);
  contentPane2.add(lblNewLabel);

提前感谢你

1 个答案:

答案 0 :(得分:0)

从你给出的部分for循环中,似乎JTextField和相应的标签都是真的创建的。但是,由于setBounds()中的值在循环的每次迭代中都不会递增,因此所有标签和文本字段都会叠加。这就是为什么你只能看到一个。

要解决这个问题,当你给对象的(x,y)位置而不是(value1,value2)时,你应该放(value1 + key1 * xGap,value2 + key1 * yGap)。这是你的循环索引,它将告诉你应该移动元素的距离。