[英]how to change access component level of jframe in netbeans
我正在嘗試在Java swing項目中使用用戶管理級別。 我想為僅管理員可以單擊的用戶禁用一些按鈕。 因此,在我的項目中,我使用JFrame設計了主頁。 而且我只有幾個按鈕,稱為庫存,發票,GRN等。
在每個按鈕中,我通過使用properties ==> cord ==> Variable修飾符將訪問級別更改為“公共”。
但是在Home JFrame中,我無法將訪問級別更改為“公共”。
在我的登錄框架中,當我以用戶身份登錄時,我要像下面給出的代碼進行編碼。 但是仍然無法調用Home.hm.btnStock,因為我無法更改Home的用戶級別。
在登錄界面
LogToHome lh = new LogToHome();
public static Login log;
private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) {
lh.logHome(comboUn, jpass);
}
在LogToHome Java類中
public void logHome(JComboBox combo, JPasswordField jpass) {
if (combo.getSelectedItem().equals("--SELECT--")) {
JOptionPane.showMessageDialog(null, "Select User name");
} else if (jpass.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Insert your Password");
jpass.grabFocus();
} else {
try {
String un = combo.getSelectedItem().toString();
String pass = new String(jpass.getPassword());
ResultSet rs = new JDBC().getData("SELECT * FROM login WHERE un='" + un.trim() + "' AND pw='" + pass + "'");
if (rs.next()) {
JOptionPane.showMessageDialog(null, "Login OK");
Login.log.setVisible(false);
if (un == "user") {
Home.hm = new Home();
Home.hm.btnStock.setenabled(false);
Home.hm.setVisible(true);
} else {
Home.hm = new Home();
Home.hm.setVisible(true);
}
} else {
JOptionPane.showMessageDialog(null, "Enter valid user name or password");
jpass.setText("");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, this.getClass().getName() + " " + e);
}
}
}
}
“在登錄框架中,當我以用戶身份登錄時,我想像下面給出的代碼進行編碼。但是仍然無法調用Home.hm.btnStock,因為我無法更改Home的用戶級別。”
不要將String與==
進行比較。 使用equals()
或equalsIgnoreCase()
if (un == "user")
應該
if ("user".equals(un))
使用==
,以下情況將不成立
if (un == "user") {
Home.hm = new Home();
Home.hm.btnStock.setenabled(false);
Home.hm.setVisible(true);
也是這一行Home.hm.btnStock.setenabled(false);
看起來很可疑。 應該使用大寫setenabled
E
設置setEnabled
,除非您有一個自定義的setenabled
方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.