gpt4 book ai didi

Java AWT-EventQueue-0 不知道为什么还通过文本文件读取

转载 作者:行者123 更新时间:2023-12-01 22:19:31 25 4
gpt4 key购买 nike

只是尝试打印第 31 行的 LOL,或者任何人都有更好的方法从下面保存的文本文件中返回余额。请随意分享,我在这个问题上陷入了困境。出现错误:

"Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at TopUpScreen.Reading(TopUpScreen.java:35)
at TopUpScreen.balanceAmmount(TopUpScreen.java:56)
at TopUpScreen$2.actionPerformed(TopUpScreen.java:183)"

如果有人知道为什么,我可能会做一些非常愚蠢的事情。但我无法找出为什么会发生这种情况。

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import java.util.*;

class TopUpScreen extends JDialog
{
private JPanel mainPanel;
Boolean errormsg = false;
String errorMessage = "";
String safetyMessage = "";


public static String Reading(String FileName, String Returned) {
try {
ArrayList<String> Trains = new ArrayList<String>();
String[] arrayed_line = null;
int count = 0;
//int count1 = 1;
//String[] Returned = ;
File file = new File(FileName);
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String line;
while ((line = bufferedReader.readLine()) != null)
{
if(line.matches(Returned)){
System.out.println("LOL");

}
stringBuffer.append(line);
arrayed_line[count] = line;
count ++;
Trains.add(line + "\n");
stringBuffer.append("\n");

}
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}

System.out.println();
//return Returned;
return FileName;



}
public void balanceAmmount(String name){
String balance = null;
balance = Reading("TopUp.txt", name);
//System.out.println(balance);
//return balance;
}
public static void WriterFile(String data,String filetype)
{
try{
//String data = " This content will append to the end of the file";

File file = new File(filetype);

//if file doesnt exists, then create it
if(!file.exists()){
file.createNewFile();
}

//true = append file
FileWriter fileWritter = new FileWriter(file.getName(),true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(data);
bufferWritter.close();

//System.out.println("Done");

}catch(IOException e){
e.printStackTrace();
}
}
public TopUpScreen()
{

setPanels();

setModalityType(ModalityType.APPLICATION_MODAL);
setSize(400, 350);
setVisible(true);
}

JLabel ammount = new JLabel("Top Up Ammount: $");
JLabel name = new JLabel("Name:");
JLabel billingAddress = new JLabel("Billing Address:");
JLabel cardNumber = new JLabel("Card Number:");
JLabel cardName = new JLabel("Card Name:");
JLabel expiryDate = new JLabel("Expirary Date:");
JLabel errorField = new JLabel();

JTextField ammountField = new JTextField();
JTextField nameField = new JTextField();
JTextField billingAddressField = new JTextField();
JTextField cardNameField = new JTextField();
JTextField cardNumberField = new JTextField();
JTextField expiryDateField = new JTextField();
public void setPanels()
{
mainPanel = new JPanel(new GridLayout(0, 2));
JPanel containerPanel = new JPanel(new GridLayout(0, 1));
JPanel lowerPanel = new JPanel(new FlowLayout());
JPanel errorPanel = new JPanel(new FlowLayout());
JButton apply = new JButton("PAY");
JButton cancel = new JButton("Cancel");
cancel.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
dispose();
}
});
apply.addActionListener(new ActionListener()
{

public void actionPerformed(ActionEvent e)
{
errorMessage= "";
safetyMessage= "";

String timestamp = new java.text.SimpleDateFormat("MM/dd/yyyy h:mm:ss a").format(new Date());
String ammountS = ammountField.getText();
String nameS = nameField.getText();
String billingAddressS = billingAddressField.getText();
String cardNameS = cardNameField.getText();
String cardNumberS = cardNumberField.getText();
String expiryDateS = expiryDateField.getText();

if(ammountS.matches("[a-zA-Z]+")){
safetyMessage += "Top Ammount invalid<br/>";
}else{errorMessage += "";}
if(ammountS == null || ammountS.isEmpty()){
safetyMessage += "Please Enter an Ammount!<br/>";
}else{errorMessage += "";}
if(nameS == null || nameS.isEmpty()){
safetyMessage += "Please Enter an Name!<br/>";
}else{errorMessage += "";}
if(billingAddressS == null || billingAddressS.isEmpty()){
safetyMessage += "Please Enter a Billing Address!<br/>";
}else{errorMessage += "";}
if(cardNameS == null || cardNameS.isEmpty()){
safetyMessage += "Please Enter a Card Name!<br/>";
}else{errorMessage += "";}
if(cardNumberS == null || cardNumberS.isEmpty()){
safetyMessage += "Please Enter a Card Number!<br/>";
}else{errorMessage += "";}
if(expiryDateS == null || expiryDateS.isEmpty()){
safetyMessage += "Please Enter a Expiry Date!<br/>";
}else{errorMessage += "";}

if (safetyMessage == ""){
errorMessage += "Successfully Topped Up With: $"+ ammountS;
errorField.setText(errorMessage);
errormsg = true;
}else{
errorMessage += "<html>";
errorMessage += safetyMessage;
errorMessage += "</html>";
errorField.setText(errorMessage);
}

if (errormsg == true){
WriterFile("######## START OF TRANSACTION ########\n","TopUp.txt");
WriterFile("Name: "+ nameS+"\n","TopUp.txt");
WriterFile("DATE: "+ timestamp+"\n","TopUp.txt");
WriterFile("Ammount: "+ ammountS+"\n","TopUp.txt");
WriterFile("CardName: "+ cardNameS+"\n","TopUp.txt");
WriterFile("Address: "+ billingAddressS+"\n","TopUp.txt");
WriterFile("Card Number: "+ cardNumberS+"\n","TopUp.txt");
WriterFile("ExpiryDate: "+ expiryDateS+"\n","TopUp.txt");
WriterFile("######## END OF TRANSACTION ########\n","TopUp.txt");

topUpAlertWindow TopUpAlertWindow = new topUpAlertWindow();
balanceAmmount(nameS);
//dispose();
}
}
});
mainPanel.add(ammount);
mainPanel.add(ammountField);
mainPanel.add(name);
mainPanel.add(nameField);
mainPanel.add(billingAddress);
mainPanel.add(billingAddressField);
mainPanel.add(cardName);
mainPanel.add(cardNameField);
mainPanel.add(cardNumber);
mainPanel.add(cardNumberField);
mainPanel.add(expiryDate);
mainPanel.add(expiryDateField);

errorPanel.add(errorField);

lowerPanel.add(apply);
lowerPanel.add(cancel);


containerPanel.add(mainPanel);
containerPanel.add(lowerPanel);
containerPanel.add(errorPanel);

add(containerPanel);
}
}

最佳答案

您的数组 arrayed_line 从未初始化。

您必须使用固定值对其进行初始化。

String[] arrayed_line = new String[5];

我认为这在你的解决方案中是不可能的。所以你必须使用ArrayList

关于Java AWT-EventQueue-0 不知道为什么还通过文本文件读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30207691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com