我制作了一个应用程序,它将获取数据库的列名,并在运行时根据数据库的列名创建一个 jlabel 和 jtextfield。
这是代码片段:我在这里使用 Netbeans ...
public void getColumn(){
String sql = "SELECT * from user";
jPanel.setLayout(new GridLayout(0,2));
try {
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
ArrayList<String> columns= new ArrayList<String>();
for(int i = 1; i<= columnCount; i++){
columns.add(rsmd.getColumnName(i));
System.out.println(String.valueOf(columns));
}
ArrayList<JTextField> fields = new ArrayList<JTextField>();
for(int i = 0; i <columns.size();i++){
JLabel jl = new JLabel(String.valueOf(columns.get(i)));
jPanel.add(jl);
JTextField f = new JTextField(50);
fields.add(f);
jPanel.add(f);
this.revalidate();
this.repaint();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
这将是示例输出。
id | ______________
fName | _____________
mName | _______________
lName | ________________
引用 JTextFields 的行..
但是,我无法获取在 jtextfields 中输入的值。我试过使用下面的代码。但没有运气。任何帮助表示赞赏。
for(JTextField field : fields){
JOptionPane.showMessageDialog(null, field.getText());
}