簡體   English   中英

如何在NetBeans中更改jframe的訪問組件級別

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM