2016-07-05 73 views
0

我剛剛開始使用Java,並且遇到編程需要使用Jframe的登錄的問題。下面的代碼:在Java中使用JFrame聲明一個類的數組

package tp_libreria; 
 
import java.awt.*; 
 
import java.awt.event.*; 
 
import javax.swing.*; 
 

 
public class menu extends JFrame { 
 
\t private JTextField f_usuario, f_pass; 
 
\t private JButton b_ingreso; 
 
\t private String usuario = "java", pass = "entrar"; 
 
\t private Usuario[] usuarios = new Usuario[5]; 
 
    usuarios[0] = new Usuario("admin", "admin"); 
 

 
    public static void main(String args[]){ 
 
\t menu application = new menu(); 
 
\t 
 
\t 
 
\t application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 
\t } 
 
}

的問題是,我不知道從哪裏初始化數組USUARIOS,它給了我下面的錯誤。

Cannot make a static reference to a non-static field usuarios

下面是類代碼:

package tp_libreria; 
 

 
class Usuario { 
 
     private String usuario; 
 
     private String pass; 
 

 
    // constructor 
 
    public Usuario(String usuario, String pass) { 
 
     this.usuario = usuario; 
 
     this.pass = pass; 
 
    } 
 

 
     // getter 
 
     public String getUsuario() { return usuario; } 
 
     public String getPass() { return pass; } 
 
     // setter 
 

 
     public void setUsuario(String usuario) { this.usuario = usuario; } 
 
     public void setPass(String pass) { this.pass = pass; } 
 
    }

+1

這是它給你的錯誤?移動usuarios [0] =新的Usuario(「admin」,「admin」);到你的主要方法 – Apostolos

+0

它給出了另一個錯誤:「不能靜態引用非靜態字段usuarios」@Apostolos – frusciante

+0

請看我下面的答案。或者你可以聲明它是靜態的,這樣你就可以像我在評論中告訴你的那樣初始化它,或者像我的答案那樣作爲應用程序的屬性進行初始化。我想你需要第二種方法,我發佈在我的回答 – Apostolos

回答

0

試試這個

public class menu extends JFrame { 
    private JTextField f_usuario, f_pass; 
    private JButton b_ingreso; 
    private String usuario = "java", pass = "entrar"; 
    private Usuario[] usuarios = new Usuario[5]; 


    public static void main(String args[]) { 
     menu application = new menu(); 
     application.usuarios[0] = new Usuario("admin", "admin"); 
     application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 
} 
+0

謝謝@Apostolos!它的工作原理,我只需要de application.usu ...在主要方法 – frusciante

+0

很高興我幫助。請使用大寫的第一個字母。所以菜單而不是菜單。有趣的編碼! – Apostolos