第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java swing 登陸界面的空指針異常?

java swing 登陸界面的空指針異常?

Tesjunma 2017-01-05 21:16:46
我這里是一個簡單的用戶登錄的程序,有兩個Jpanel(pnlTop和主體部分),主體部分有user的JPanel,PassWord的JPanel。 其中,用戶的密碼、用戶名信息都是存儲在"information"路徑下的"Customer.txt"文件里面的。 isCorrect()和checkInput()屬于自定義的方法,用于檢查輸入和文件內的信息是否匹配。package?UI; import?java.awt.BorderLayout; import?java.awt.Color; import?java.awt.Dimension; import?java.awt.Font; import?java.awt.event.ActionEvent; import?java.awt.event.ActionListener; import?java.util.ArrayList; import?java.util.List; import?javax.swing.JButton; import?javax.swing.JLabel; import?javax.swing.JOptionPane; import?javax.swing.JPanel; import?javax.swing.JPasswordField; import?javax.swing.JTextField; import?javax.swing.border.EmptyBorder; import?Controller.CustomerController; import?Customer.Customer; import?myComp.MyPicPanel; public?class?LoginForm?extends?BaseDialog{ ????private?JPanel?pnlMain?=?null; ????private?JPanel?pnlTop?=?null; ????private?JPanel?pnlUsername?=?null; ????private?JPanel?pnlPassword?=null; ????private?JPanel?pnlButton?=?null; ????private?JLabel?lblUsername?=?null; ????private?JLabel?lblPassword=?null; ????private?JButton?btnExit=?null; ????private?JButton?btnLogin=?null; ????private?JTextField?txtUsername=?null; ????private?JPasswordField?txtPassword=?null; ????public?LoginForm(){ ????????pnlTop?=?new?MyPicPanel("images/2.jpg",400,90); ????????pnlTop.setPreferredSize(new?Dimension(400,90)); ????????this.add(pnlTop,?BorderLayout.NORTH); ????????pnlMain?=?new?JPanel(); ????????pnlMain.setLayout(new?BorderLayout()); ????????pnlMain.setBorder(new?EmptyBorder(5,0,0,0)); ????????pnlMain.setBackground(Color.LIGHT_GRAY); ????????this.add(pnlMain,?BorderLayout.CENTER); ????????initUI(); ????} ????public?void?initUI(){ ????????//user?name?panel ????????pnlUsername?=?new?JPanel(); ????????pnlUsername.setPreferredSize(new?Dimension(this.getWidth(),60)); ????????pnlUsername.setBorder(new?EmptyBorder(10,0,0,0)); ????????pnlMain.add(pnlUsername,BorderLayout.NORTH); ????????//password?panel ????????pnlPassword?=?new?JPanel(); ????????pnlPassword.setPreferredSize(new?Dimension(this.getWidth(),60)); ????????pnlMain.add(pnlPassword,BorderLayout.CENTER); ????????//button?panel ????????pnlButton?=?new?JPanel(); ????????pnlButton.setPreferredSize(new?Dimension(this.getWidth(),60)); ????????pnlMain.add(pnlButton,BorderLayout.SOUTH); ????????addUsername(pnlUsername); ????????addPassword(pnlPassword); ????????addButton(pnlButton); ????} ?????public?ActionListener?onclickListener?=?new?ActionListener(){ ????????@Override ????????public?void?actionPerformed(ActionEvent?e){ ????????????JButton?jb?=?(JButton)e.getSource(); ????????????if(jb.getActionCommand().equals("login")){ ????????????????if(checkInput()){ ????????????????????????if(isCorrect()){ ????????????????????????????Mainform?main?=?new?Mainform(); ????????????????????????????dispose(); ????????????????????????} ????????????????????}else{ ????????????????????JOptionPane.showMessageDialog(null,?"登錄失敗","Gourmet?Coffee?System", ????????????????????????????JOptionPane.ERROR_MESSAGE); ????????????????} ????????????}else?if(jb.getActionCommand().equals("exit")){ ????????????????System.exit(0); ????????????} ????????} ????}; ????private?void?addPassword(JPanel?pnlPassword)?{ ????????JLabel?lblPassword?=?new?JLabel("Password"); ????????lblPassword.setFont(new?Font("Microsoft?YaHei?UI",Font.BOLD,20)); ????????pnlPassword.add(lblPassword); ????????txtPassword?=?new?JPasswordField(10);? ????????pnlPassword.add(txtPassword); ????} ????private?void?addUsername(JPanel?pnlUsername)?{ ????????JLabel?lblUsername?=?new?JLabel("Account"); ????????lblUsername.setFont(new?Font("Microsoft?YaHei?UI",Font.BOLD,20)); ????????pnlUsername.add(lblUsername); ????????txtUsername?=?new?JTextField(10); ????????pnlUsername.add(txtUsername); ????} ????//默認FlowLayout ????????private?void?addButton(JPanel?pnlButton)?{ ????????????btnLogin?=?new?JButton("Login"); ????????????btnLogin.setActionCommand("login"); ????????????btnLogin.addActionListener(onclickListener); ????????????pnlButton.add(btnLogin); ????????????btnExit?=?new?JButton("Exit"); ????????????btnExit.setActionCommand("exit"); ????????????btnExit.addActionListener(onclickListener); ????????????pnlButton.add(btnExit); ????????} ????public?boolean?isCorrect(){ ????????boolean?flag?=?true; ????????CustomerController?userManager?=??new?CustomerController(); ????????ArrayList<Customer>?customers?=?userManager.readObject("information","Customer.txt"); ????????for(Customer?customer:?customers){ ????????????if(customer.getAccount().equals(txtUsername.getText().trim())) ????????????{ ????????????????if((String.valueOf(txtPassword.getPassword().equals(customer.getPassword())))?!=?null){ ????????????????????flag?=?true; ????????????????} ????????????} ????????} ????????return?flag; ????} ????public?boolean?checkInput(){ ????????boolean?flag?=?true; ????????if(txtUsername.getText().trim().isEmpty()){ ????????????this.showMessage("賬號不許為空!"); ????????????txtUsername.requestFocus(); ????????????flag?=?false; ????????} ????????if(String.valueOf(txtPassword.getPassword()).trim().isEmpty()){ ????????????this.showMessage("密碼不許為空!"); ????????????txtPassword.requestFocus(); ????????????flag?=?false; ????????} ????????return?flag; ????} ????public?void?showMessage(String?msg){ ????????JOptionPane.showMessageDialog(null,?msg,this.getTitle(),JOptionPane.ERROR_MESSAGE); ????} }輸出界面是這樣:但是每次輸入用戶名和密碼(只要不是空,無論輸入什么)都會報空指針異常。這是異常片段:Exception?in?thread?"AWT-EventQueue-0"?java.lang.NullPointerException ????at?UI.Mainform.removeButton(Mainform.java:134) ????at?UI.Mainform.<init>(Mainform.java:71) ????at?UI.LoginForm$1.actionPerformed(LoginForm.java:95)折磨了我整整一個下午加晚上…明天就要交了 求救啊各位大佬……
查看完整描述

1 回答

?
司風0

TA貢獻26條經驗 獲得超15個贊

提示一下,空指針異常也叫越界異常,是不是數組或者集合出現(xiàn)越界了?
查看完整回答
反對 回復 2017-01-10
  • 1 回答
  • 0 關注
  • 1953 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號