Java - 如何自动生成输入字段?
Java - How to auto generate input fields?
我已经为此工作、尝试并失败了很长一段时间。我需要生成额外的输入字段。在我的 SQL 数据库中,我有两个 table,一个说明我需要生成多少个额外字段以及什么类型(对于初学者来说,只需输入字段)。在另一个 table 中,我将数据写入这些字段。所以我将所有这些数据作为 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);
提前致谢
从您提供的部分 for 循环来看,似乎确实创建了 JTextField 和相应的标签。但是,由于 setBounds() 中的值不会在循环的每次迭代中递增,因此所有标签和文本字段都会叠加。这就是为什么你只能看到一个。
为了解决这个问题,当你给你对象的 (x,y) 位置时,你应该放置 (value1 + key1 * xGap, value2 + key1 * yGap) 而不是 (value1, value2)。这是您的循环索引,它将告诉您应该将元素移动多远。
我已经为此工作、尝试并失败了很长一段时间。我需要生成额外的输入字段。在我的 SQL 数据库中,我有两个 table,一个说明我需要生成多少个额外字段以及什么类型(对于初学者来说,只需输入字段)。在另一个 table 中,我将数据写入这些字段。所以我将所有这些数据作为 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);
提前致谢
从您提供的部分 for 循环来看,似乎确实创建了 JTextField 和相应的标签。但是,由于 setBounds() 中的值不会在循环的每次迭代中递增,因此所有标签和文本字段都会叠加。这就是为什么你只能看到一个。
为了解决这个问题,当你给你对象的 (x,y) 位置时,你应该放置 (value1 + key1 * xGap, value2 + key1 * yGap) 而不是 (value1, value2)。这是您的循环索引,它将告诉您应该将元素移动多远。