これは私がこれまで行ってきたことです。ただし、または0
(boolean
をint
に変換)が設定されている(setInt()
)?
(またはparameter
)を指定することはできません。私は、を使用してコンポーネントvariable name
を試しましたが、印刷するとnull
を返します。JComponentの名前を取得し、PreparedStatementのパラメータとして代入する
私が正しく指定することはできないんだけどどうすれば1または0の値から提示されたテキストボックスれている私のPreparedStatementのパラメータとして、チェックボックスの値を割り当てることができますか?
ps.setInt(1,valueOfUnknownCheckbox);
//need to put the correct checkbox as 2nd argument.
私はと完全に不慣れだ
Java Reflection
の使用に関するいくつかの情報を見ました。Java Reflection
を使用していない方法はありますか?
一部のチェックボックスの値は、正しいデータベーステーブルの列にはありません。
私はあなたが私の人を助けることを願っています。 List
を使用して、コンテナからコンポーネントを収集してコード行を減らしたかったのです。
ここに私のコードです。
private void saveAdminPermissions(){
List<Component> adminPermissionsChbxs = fm.getComponentsAsList(administrationPermissionsCheckBoxPanel);
Boolean bool = null;
String updateSQL =
"UPDATE allusers_admin_permissions SET CURC_BTN=?, DISCOUNTS_BTN=?, SECTIONS_BTN=?,"
+ " USERS_BTN=?, SCHEDULING_BTN=?, YRLEVELS_BTN=?, ACCTG_BTN=? WHERE USERID=? ";
try(Connection con = DBUtil.getConnection(DBType.MYSQL);
PreparedStatement ps = con.prepareStatement(updateSQL);)
{
int x=1;
for(Component c : adminPermissionsChbxs){
if(c instanceof JCheckBox){
bool = ((JCheckBox)c).isSelected();
JOptionPane.showMessageDialog(null,"Name: "+ ((JCheckBox)c).getName());
JOptionPane.showMessageDialog(null,bool);
} //--end of if
int boolToInt = (bool)?1:0 ;
ps.setInt(x, boolToInt);
x++;
}//--end of forloop
ps.setInt(8, um.getIdOfSelected(usersList));
ps.executeUpdate(); JOptionPane.showMessageDialog(null,"Update successful");
}catch(SQLException e){
JOptionPane.showMessageDialog(null,"[email protected]\n"+ e.getMessage());
}
}//--end of method
ありがとうございます。
これは、http://stackoverflow.com/questions/14333026/how-to-know-which-jcheckbox-sent-itemeventに役立ちます。 –
万が一、あなたのチェックボックスが 'JTable'ですか? – trashgod
@trashgodいいえ、私はちょうどそれらをJPanelの中に入れます。まだJTablesに精通していないが、私はそれを勉強し始めた。 – p3ace