データベースの列名を取得し、db の列名に基づいて実行時に jlabel と jtextfield を作成するアプリケーションを作成しました。
コードスニペットは次のとおりです。Im using Netbeans here...
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());
}