2014-01-23 120 views
0

我正在嘗試在我的java swing項目中使用用戶管理級別。我想禁用只有管理員可以點擊的用戶的幾個按鈕。所以在我的項目中,我使用JFrame設計了我的主頁。我有幾個按鈕叫股票,發票,收貨單等。如何在NetBeans中更改jframe的訪問組件級別

Home

在每一個按鈕,我通過使用屬性==>線==>'變量改變訪問級別爲「公共」。

Login

但在首頁的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); 
     } 
    } 

} 

}

+0

可能重複的[我如何比較Java中的字符串?](http://stackoverflow.com/questions/513832/how-doi-i-比較字符串在爪哇) – Reimeus

回答

1

「以我登入畫面我,當我登錄的用戶我想代碼就像下面給出的那樣,但是我仍然無法調用Home.hm.btnStock,因爲我無法更改Home的用戶級別。「

不要將字符串與==比較。使用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方法

+0

好的謝謝。 :)但仍然無法找到訪問Home JFrame上的按鈕的方法。 – Dilini

+0

您的代碼中的哪個位置嘗試訪問它?在Home.hm.btnStock.setenabled(false)中爲 –

+0

;當我輸入Home.hm時,我沒有像btnStock.setenabled(false)那樣提供暗示; – Dilini

相關問題