그래서 ATM 시스템을 만드는 과정에서 사용자에게 새 계정을 만들지 묻습니다. 즉, 상단에 위치한 ATM의 제목이 '로그인'에서 '계정 생성'으로 변경되어야합니다. 버튼 누름에서 JLabel 제목의 텍스트를 변경해야합니다. 문제는 내가 버튼 새 계정을 누를 때 발생하는 모든 터미널 창에 다음 줄에 NullPointerException이 나타내는 팝업 있다는 점이다 : 내가 기억하는 바로는매우 이상한 NullPointerException
title.setText("Create New Account");
을,이 의미 객체 "제목" null 문제는 그것이 null이 아니어야한다는 것입니다. 나는 그것을 확립했다는 것을 절대적으로 확신하고 있으며 갑자기 나를 위해 이와 같은 오류를 리턴하는 이유를 생각할 수 없습니다. 당신은 클래스 변수로 된 제목과 같은 변수를 정의
public class AccountSystem extends JFrame implements ActionListener
{
public static Account currentuser = new Account(); //This is so that the methods know which account is currently logged in so they can perform operations on it.
public static int count=0;
public static Account acc[] = new Account[1000];
public static String parts[] = new String[3];
private JButton login, logout, createacc, deposit1, deposit2, withdraw1, withdraw2, transfer1, transfer2, nevermind;
private JPanel optionson, optionsoff, loginarea, mainarea, titlecard, depositscreen, withdrawscreen, transferscreen, newaccountscreen;
private JTextField username, password, transfer, depositarea, withdrawarea, retypearea;
private JLabel userprompt, depositprompt, withdrawpromt, balancedisp, passwordprompt, mainmessage, title;
private String newuser, newpass, newpassconfirm;
BorderLayout borderlayout;
GridLayout gridlayout;
public AccountSystem()
{
borderlayout = new BorderLayout();
borderlayout.setHgap(5);
borderlayout.setVgap(5);
//Establishing our buttons here.
JButton login = new JButton("Login");
login.addActionListener(this);
JButton createacc = new JButton("New Account");
createacc.addActionListener(this);
JButton withdraw2 = new JButton("Withdraw");
JButton transfer2 = new JButton("Transfer");
//Establishing our panels here.
JPanel optionson = new JPanel();
JPanel optionsoff = new JPanel();
JPanel loginarea = new JPanel();
JPanel titlecard = new JPanel();
//Establishing our JLabel here.
JLabel userprompt = new JLabel("Username: ");
JLabel passwordprompt = new JLabel("Password: ");
JLabel title = new JLabel("LOGIN");
//Establishing our textfields here.
JTextField username = new JTextField(20);
JTextField password = new JTextField(20);
JTextField transfer = new JTextField(20);
JTextField withdrawarea = new JTextField(20);
mainscreen(getContentPane());
//Building the GUI here.
titlecard.setSize(500,50);
titlecard.setLocation (0,0);
loginarea.setSize(300,450);
loginarea.setLocation(0,50);
optionsoff.setSize(150,450);
optionsoff.setLocation(300,50);
titlecard.add(title);
loginarea.add(userprompt);
loginarea.add(username);
loginarea.add(passwordprompt);
loginarea.add(password);
loginarea.add(login);
loginarea.add(createacc);
getContentPane().setLayout(null);
getContentPane().add(titlecard);
getContentPane().add(loginarea);
getContentPane().add(optionsoff);
}
public void actionPerformed (ActionEvent e)
{
if ((e.getActionCommand()).equals("Login"))
{
login();
}
else if ((e.getActionCommand()).equals("New Account"))
{
title.setText("Create New Account");
}
}
가능한 중복 [누군가가 내가 자바에서이 오류를 받고 있어요 왜 나를 설명 할 수 있습니까?] (http://stackoverflow.com/questions/8344989/can-someone-explain-me-why-im- Java에서 오류 발생) – cHao