0
在我的Java Application Im中嘗試創建用戶組併爲用戶分配權限,具體取決於它們所屬的用戶組。這是我編程的。當用戶登錄到系統時,獲取用戶名並存儲在一個靜態變量中。當用戶打開任何表單時,從靜態變量中獲取用戶名並檢查其組和權限。根據權限禁用並啓用表單的某些組件。這裏我有問題從靜態變量stgroupName中檢索值。 ItmMgt類的方法checkuserrights()不會獲取當前用戶的名稱。有人能幫助我理解這裏的錯誤嗎?我想,應該有很多更好的方法來做到這一點。所以歡迎任何建議。將靜態變量值傳遞給另一個類
public class Login extends javax.swing.JInternalFrame {
public static String USERNAME;
USERNAME = txtUserName.getText(); // get the user name to static variable
}
public class ItemMgt extends javax.swing.JInternalFrame {
public ItemMgt() {
initComponents();
checkuserrights();
genarateID();
}
private void checkuserrights() {
try {
Usergroup usergroup = UserGroupController.getUserRights(Login.USERNAME);// check the user's rights passing user name from static variable.
if (usergroup != null) {
btnDelete.setEnabled(usergroup.isDeleteItem());
btnAdd.setEnabled(usergroup.isAdditem());
btnUpdate.setEnabled(usergroup.isUpdateitem());
}
} catch (ClassNotFoundException ex) {
Logger.getLogger(ItemMgt.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(ItemMgt.class.getName()).log(Level.SEVERE, null, ex);
}
}
public class UserGroupController {
public static Usergroup getUserRights(String username) throws ClassNotFoundException, SQLException {
Connection conn = DBConnection.conn();
String sql = "select * from UserGroup where uGroupName = ?";
Object[] values = {username};
ResultSet res = DBHandller.getData(sql, conn, values);
while (res.next()) {
String grpName = res.getString("uGroupName");
boolean additem = res.getBoolean("addItem");
boolean delitem = res.getBoolean("delteItem");
boolean upitem = res.getBoolean("editItem");
Usergroup ugroup = new Usergroup(grpName, additem, delitem, upitem);
return ugroup;
}
return null;
}
}
你的代碼不清楚,不能編譯。它表明你將* user *名稱存儲在* Login *類的名爲* stgroupName *的靜態變量中,然後嘗試從名爲* stgroupName *的靜態變量中取回組名,但位於* UserGroup *類。修正你的命名約定(這個'st'前綴是不必要的,並且讓事情變得更不可讀),並將事物存儲在一個獨特的地方。 – 2013-04-30 13:07:52
它是一個maltyvuser應用程序? – MaVRoSCy 2013-04-30 13:10:37
@JB Nizet對不起。它應該是Usergroup usergroup = UserGroupController.getUserRights(Login.stgroupName);更新了代碼 – amal 2013-04-30 13:12:31