Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 要在GUI中加载的缓冲读取器_Java_User Interface_Jframe_Actionlistener_Bufferedreader - Fatal编程技术网

Java 要在GUI中加载的缓冲读取器

Java 要在GUI中加载的缓冲读取器,java,user-interface,jframe,actionlistener,bufferedreader,Java,User Interface,Jframe,Actionlistener,Bufferedreader,我制作了GUI来获取输入并保存它。我在加载输入时遇到了问题,我试图使用缓冲读取器进行加载,但我被卡在了这里 不要介意代码的注释区域:) 我需要load方法的帮助,因为我需要从数组中输入它来添加输入,并使用prev移动它 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; //begining of a class that wil

我制作了GUI来获取输入并保存它。我在加载输入时遇到了问题,我试图使用缓冲读取器进行加载,但我被卡在了这里

不要介意代码的注释区域:)

我需要load方法的帮助,因为我需要从数组中输入它来添加输入,并使用prev<和next>移动它

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.util.*;


//begining of a class that will implement Action listener
public class Orders extends JFrame implements ActionListener {
 //instance variables, text field and buttons
 private int index;
 JFrame jf;

 JTextField jtfItemName;
 JTextField jtfNumberOf;
 JTextField jtfCost;
 JTextField jtfAmountOwned;

 JButton jbCalculate;
 JButton jbSave;
 JButton jbClear;
 JButton jbExit;

 double calculate;

 JButton jbLoad;
 JButton jbPrev;
 JButton jbNext;

 String itemName;
 String numberOf;
 String cost;
 String amountOwned;

 ArrayList < String > lines;
 String split = ", ";

 //gui implementation

 public Orders() {
  index = 0;
  lines = new ArrayList < > ();
  jf = new JFrame(" Orders Calculator");
  //pannels
  JPanel pnl = new JPanel();
  pnl.setLayout(new GridLayout(0, 2));
  JLabel jlFirst = new JLabel("Item name :");
  jlFirst.setHorizontalAlignment(JLabel.RIGHT);
  jtfItemName = new JTextField(10);
  pnl.add(jlFirst);
  pnl.add(jtfItemName);

  JLabel jlSecond = new JLabel("Number of :");
  jlSecond.setHorizontalAlignment(JLabel.RIGHT);
  jtfNumberOf = new JTextField(10);
  pnl.add(jlSecond);
  pnl.add(jtfNumberOf);

  JLabel jlThird = new JLabel("Cost");
  jlThird.setHorizontalAlignment(JLabel.RIGHT);
  jtfCost = new JTextField(10);
  pnl.add(jlThird);
  pnl.add(jtfCost);

  JLabel jlFourth = new JLabel("Amount owned :");
  jlFourth.setHorizontalAlignment(JLabel.RIGHT);
  jtfAmountOwned = new JTextField(10);
  jtfAmountOwned.setEditable(false);
  pnl.add(jlFourth);
  pnl.add(jtfAmountOwned);



  JPanel jpSouth = new JPanel(new BorderLayout());

  JPanel jpSouthUp = new JPanel();
  JPanel jpSouthDown = new JPanel();

  jpSouth.add(jpSouthUp, BorderLayout.NORTH);
  jpSouth.add(jpSouthDown, BorderLayout.SOUTH);

  //buttons top
  jbCalculate = new JButton("Calculate");
  jbSave = new JButton("Save");
  jbClear = new JButton("Clear");
  jbExit = new JButton("Exit");
  jpSouthUp.add(jbCalculate);
  jpSouthUp.add(jbSave);
  jpSouthUp.add(jbClear);
  jpSouthUp.add(jbExit);

  //buttons bottom
  jbLoad = new JButton("Load");
  jbPrev = new JButton("<Prev");
  jbNext = new JButton("Next>");

  jpSouthDown.add(jbLoad);
  jpSouthDown.add(jbPrev);
  jpSouthDown.add(jbNext);


  jf.add(pnl);
  jf.add(jpSouth, BorderLayout.SOUTH);
  jf.pack();
  jf.setVisible(true);
  jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  //action listener
  jbCalculate.addActionListener(this);
  jbSave.addActionListener(this);
  jbClear.addActionListener(this);
  jbExit.addActionListener(this);
  jbLoad.addActionListener(this);
  jbPrev.addActionListener(this);
  jbNext.addActionListener(this);


 }
 public double calc() {
   double number = Double.parseDouble(jtfNumberOf.getText());
   double cost = Double.parseDouble(jtfCost.getText());
   //     double sum = number * cost;
   //    calculate = "" + sum;
   //    jtfAmountOwned.setText(calculate);
   calculate = number * cost;
   jtfAmountOwned.setText(calculate + "");
   return calculate;
  }
  //parametar constructor
 public Orders(String itemName, String numberOf, String cost, String amountOwned) {

  this.itemName = itemName;
  this.numberOf = numberOf;
  this.cost = cost;
  this.amountOwned = amountOwned;


 }

 public void setItemName(String itemName) {
  this.itemName = itemName;
 }

 public String getItemName() {
  return itemName;
 }

 public void setNumberOf(String numberOf) {
  this.numberOf = numberOf;
 }

 public String getNumberOf() {
  return numberOf;
 }

 public void setCost(String cost) {
  this.cost = cost;
 }

 public String getCost() {
  return cost;
 }

 public void setAmountOwned(String amountOwned) {
  this.amountOwned = amountOwned;
 }

 public String getAmountOwned() {
  return amountOwned;
 }




 public void actionPerformed(ActionEvent events) {
  if (events.getSource() == jbExit) {
   System.exit(0);
  } else if (events.getSource() == jbClear) {
   jtfItemName.setText("");
   jtfNumberOf.setText("");
   jtfCost.setText("");
   jtfAmountOwned.setText("");
  } else if (events.getSource() == jbCalculate) {
   calc();
  } else if (events.getSource() == jbSave) {

   try {
    PrintWriter pV = new PrintWriter(new BufferedWriter(new FileWriter("121lab1.csv", true)));
    pV.println("' " + jtfItemName.getText() + "', " + jtfNumberOf.getText() + ", " + jtfCost.getText() + ", " + calc());
    pV.close();
   } catch (FileNotFoundException ex) {
    System.out.println("File not found");
   } catch (IOException ioe) {
    System.out.println("IOExcetion");

   } catch (Exception e) {
    System.out.println("General exception");
   }


  } else if (events.getSource() == jbLoad) {
   BufferedReader br = null;
   String line = null;

   try {
    br = new BufferedReader(new FileReader("121Lab1.csv"));
    while ((line = br.readLine()) != null) {
     lines.addAll(Arrays.asList(line.split(",[ ]*")));

    }





   } catch (FileNotFoundException ex) {
    System.out.println("File not found");
   } catch (IOException ioe) {
    System.out.println("IOExcetion");

   } catch (Exception e) {
    System.out.println("General exception");
   }

   System.out.println(lines.size());
  } else if (events.getActionCommand().equals("Next>") || events.getActionCommand().equals("<Prev")) {
   move(events.getActionCommand());
  }
 }
 public void move(String where) {
  if (where.equals("Next>")) {
   if ((index + 4) >= lines.size())
    JOptionPane.showMessageDialog(jf, "No more entries");
   else {
    //String[] name = line.split(split);
    //name nameNext = new name();

    /*index = index + 4;
    jtfItemName.setText(lines.get(index));
    jtfCost.setText(lines.get(index+2));
    jtfNumberOf.setText(lines.get(index + 1));
    jtfAmountOwned.setText(lines.get(index + 3));*/
   }
  } else if (where.equals("<Prev")) {
   if ((index - 4) < 0)
    JOptionPane.showMessageDialog(jf, "No more entries");
   else {
    /*index = index - 4;
     jtfItemName.setText(lines.get(index));
     jtfCost.setText(lines.get(index+2));
     jtfNumberOf.setText(lines.get(index + 1));
     jtfAmountOwned.setText(lines.get(index + 3));*/
   }
  } else {
   jtfItemName.setText(lines.get(0));
   jtfCost.setText(lines.get(2));
   jtfNumberOf.setText(lines.get(1));
   jtfAmountOwned.setText(lines.get(3));
  }


 }

 public static void main(String[] args) {

  Orders test = new Orders();

 }

}
import javax.swing.*;
导入java.awt.*;
导入java.awt.event.*;
导入java.io.*;
导入java.util.*;
//将实现动作侦听器的类的开头
公共类Orders扩展JFrame实现ActionListener{
//实例变量、文本字段和按钮
私有整数索引;
jf框架;
JTextField jtfItemName;
JTextField jtfNumberOf;
JTextField-jtfCost;
JTextField未拥有;
JButton jbCalculate;
JButton jbSave;
JButton jbClear;
JButton jbExit;
双重计算;
JButton jbLoad;
JButton jbPrev;
JButton jbNext;
字符串itemName;
字符串编号;
串成本;
无主弦;
ArrayList行;
字符串拆分=“,”;
//gui实现
公共秩序{
指数=0;
行=新阵列列表<>();
jf=新JFrame(“订单计算器”);
//窗格
JPanel pnl=新的JPanel();
pnl.setLayout(新的GridLayout(0,2));
JLabel jlFirst=新JLabel(“项目名称:”);
jlFirst.setHorizontalAlignment(JLabel.RIGHT);
jtfItemName=新的JTextField(10);
pnl.add(第一);
pnl.add(jtfItemName);
JLabel jlSecond=新的JLabel(“数量:”);
jlSecond.setHorizontalAlignment(JLabel.RIGHT);
jtfNumberOf=新的JTextField(10);
pnl.add(第二个);
pnl.add(jtfNumberOf);
JLabel jlThird=新JLabel(“成本”);
jlThird.setHorizontalAlignment(JLabel.RIGHT);
jtfCost=新的JTextField(10);
pnl.add(第三次);
pnl.add(jtfCost);
JLabel jlFourth=新JLabel(“拥有的金额:”);
jlFourth.setHorizontalAlignment(JLabel.RIGHT);
jtfAmountOwned=新的JTextField(10);
jtfAmountOwned.setEditable(false);
pnl.add(jl4);
pnl.add(无所有权);
JPanel jpSouth=newjpanel(newborderlayout());
JPanel-jpSouthUp=新的JPanel();
JPanel jpSouthDown=新的JPanel();
add(jpSouthUp,BorderLayout.NORTH);
add(jpSouthDown,BorderLayout.SOUTH);
//钮扣
jbCalculate=新的JButton(“计算”);
jbSave=新的JButton(“Save”);
jbClear=新的JButton(“Clear”);
jbExit=新的JButton(“Exit”);
jpSouthUp.add(jbCalculate);
jpSouthUp.add(jbSave);
jpSouthUp.add(jbClear);
jpSouthUp.add(jbExit);
//按钮底部
jbLoad=新的JButton(“加载”);
jbPrev=新的JButton(“”);
jpSouthDown.add(jbLoad);
jpSouthDown.add(jbPrev);
jpSouthDown.add(jbNext);
jf.add(pnl);
jf.add(jpSouth,BorderLayout.SOUTH);
jf.pack();
jf.setVisible(真);
jf.setDefaultCloseOperation(JFrame.EXIT\u ON\u CLOSE);
//动作监听器
jbCalculate.addActionListener(this);
jbSave.addActionListener(这个);
jbClear.addActionListener(this);
jbExit.addActionListener(this);
jbLoad.addActionListener(这个);
jbPrev.addActionListener(此);
jbNext.addActionListener(this);
}
公共双计算器(){
double number=double.parseDouble(jtfNumberOf.getText());
double cost=double.parseDouble(jtfCost.getText());
//双倍总和=数量*成本;
//计算=”+总和;
//jtfAmountOwned.setText(计算);
计算=数量*成本;
jtfAmountOwned.setText(计算+“”);
收益计算;
}
//参数构造函数
公共订单(String itemName、String numberOf、String cost、String AmonTowned){
this.itemName=itemName;
this.numberoff=numberoff;
成本=成本;
this.amontowned=amontowned;
}
public void setItemName(字符串itemName){
this.itemName=itemName;
}
公共字符串getItemName(){
返回itemName;
}
public void setnumberoff(字符串numberoff){
this.numberoff=numberoff;
}
公共字符串getNumberOf(){
返回号码;
}
公共无效设置成本(字符串成本){
成本=成本;
}
公共字符串getCost(){
退货成本;
}
public void setamontowned(字符串amontowned){
this.amontowned=amontowned;
}
公共字符串getAmonTowned(){
归无主;
}
已执行的公共无效操作(操作事件){
if(events.getSource()==jbExit){
系统出口(0);
}else if(events.getSource()==jbClear){
jtfItemName.setText(“”);
jtfNumberOf.setText(“”);
jtfCost.setText(“”);
jt未拥有。setText(“”);
}else if(events.getSource()==jbCalculate){
计算();
}else if(events.getSource()==jbSave){
试一试{
PrintWriter pV=新的PrintWriter(新的BufferedWriter(新的FileWriter(“121lab1.csv”,true));
pV.println(“'”+jtfItemName.getText()+”,“+jtfNumberOf.getText()+”,“+jtfCost.getText()+”,“+calc());
pV.close();
}捕获(FileNotFoundException ex){
System.out.println(“未找到文件”);
}捕获(ioe异常ioe){
System.out.println(“IOException”);
}捕获(例外e){
System.out.println(“一般例外”);
}
}else if(events.getSource()==jbLoad){
BufferedReader br=null;
字符串行=null;
试一试{
br=新的BufferedReader(新的文件读取器(“121Lab1.csv”);
而((line=br.readLine())!=null){
lines.addAll(Arrays.asList(line.split(“,[]*”)));
}
}捕获(FileNotFoundException ex){
System.out.println(“未找到文件”);
}捕获(ioe异常ioe){
System.out.println(“IOException”);
}捕获(例外e){
System.out.println(“一般例外”);
}
System.out.println(lines.size());
}else if(events.getActionCommand().equals(“Next>”)|| events.getActionCommand().equals(“”){
如果((索引+4)>=lines.size())
showMessageDialog(jf,“无更多条目”);
否则{
//String[]name=line.split(split);
//name nameNext=新名称();
/*指数=指数+4;
jtfItemName.setText(lines.get(index));
jtfCost.setText(lines.get(index+2));
jtfNumberOf.setText(lines.get(index+1));
jtUntowned.setText(lines.get(index+3))*/
}
}否则如果(where.e