[英]Get the value from created JTextfield at runtime
我已经制作了一个应用程序,该应用程序将获取数据库的列名,并在运行时根据数据库的列名创建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());
}
也许您可以尝试以下方法:
Component children[] = jp.getComponents();
for(Component child : children) {
if(child instanceof JTextField) [
JOptionPane.showMessageDialog(null, ((JTextField)child).getText());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.