2017-02-06 1 views
0

J'ai créé une interface graphique pour prendre l'entrée et la sauvegarder. J'ai des problèmes quand je charge l'entrée, j'ai essayé de le faire avec le lecteur tamponné et je suis coincé ici.Lecteur en mémoire tampon à charger dans l'interface graphique

Ne pas l'esprit les zones de code :) commentaires

je besoin d'aide avec la méthode de charge puisque je dois l'entrer au tableau pour ajouter entrée et de se déplacer avec prev < et suivant>.

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(); 

} 

} 
+0

Vous auriez pu créer un SSCEE. – Leonid

Répondre

0

Dans votre lecteur buffered, le nom de fichier est 121Lab1.csv. Dans votre bufferedwriter, le nom de fichier est 121lab1.csv. Vous lisez 121lab1.csv, vous écrivez à 121Lab1.csv. Comment voulez-vous que cela fonctionne? (lecture d'un fichier inexistant)