I've just finished reading 'Java for Dummies' and have begun to create a simple POS program. I have been having trouble getting the program to do what I want it to do! I have two actionListeners linked to each of the following buttons, 'Amigos' and 'Fosters'. I also have two text fields, one showing the price of the individual drink and then other used for a sub-total. I did have the sub-total working to add up multiples of the same drink, but not an 'Amigos' with a 'Fosters'. This was programmed by trying to share a sub-total variable. I tried to work around my amateur java programming by reading and writing to a single text file but that is proving difficult for me as well! Below is my code trying to implement my read and write work around.
This is my first ever Java program so please forgive the format, punctuation and Java conventions I have got wrong. Also forgive my lack of comments. Any advice is greatly appreciated!
Regards
Louis
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.text.NumberFormat;
import java.io.FileNotFoundException;
class till_v2 {
public static void main(String args[]) {
JFrame frame;
Container content_pane;
JTextField textField, subTotal;
JButton b1Amigos, b2Fosters;
FlowLayout layout;
frame = new JFrame();
frame.setTitle("Louis' Till");
content_pane = frame.getContentPane();
textField = new JTextField("Price displayed here.",15);
subTotal = new JTextField("Sub-Total.", 5);
b1Amigos = new JButton("Amigos");
b1Amigos.addActionListener(new AmigosAL(textField));
b1Amigos.addActionListener(new subTotalAmigosUD(subTotal));
b2Fosters = new JButton("Fosters");
b2Fosters.addActionListener(new FostersAL(textField));
b2Fosters.addActionListener(new subTotalFostersUD(subTotal));
content_pane.add(textField);
content_pane.add(subTotal);
content_pane.add(b1Amigos);
content_pane.add(b2Fosters);
layout = new FlowLayout();
content_pane.setLayout(layout);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
class subTotalFostersUD implements ActionListener {
JTextField subTotal;
int itemPrice;
double sub_total;
SUBTOTAL SUBTOTALobject = new SUBTOTAL();
subTotalFostersUD(JTextField subTotal) {
this.subTotal = subTotal;
}
//The problem could be here!
public void actionPerformed(ActionEvent e) {
try {
itemPrice = 320;
sub_total = SUBTOTALobject.SUBTOTAL(itemPrice);
subTotal.setText("£"+sub_total);
}
catch (FileNotFoundException err) {
System.out.println("1!");
}
}
}
class subTotalAmigosUD implements ActionListener {
JTextField subTotal;
int itemPrice;
double sub_total;
SUBTOTAL SUBTOTALobject = new SUBTOTAL();
subTotalAmigosUD(JTextField subTotal) {
this.subTotal = subTotal;
}
//Same problem as above!
public void actionPerformed(ActionEvent e) {
try {
itemPrice = 330;
sub_total = SUBTOTALobject.SUBTOTAL(itemPrice);
subTotal.setText("£"+sub_total);
}
catch (FileNotFoundException err) {
System.out.println("2!");
}
}
}
class AmigosAL implements ActionListener {
JTextField textField;
AmigosAL(JTextField textField) {
this.textField = textField;
}
public void actionPerformed(ActionEvent e) {
textField.setText("£3.30");
}
}
class FostersAL implements ActionListener {
JTextField textField;
FostersAL(JTextField textField) {
this.textField = textField;
}
public void actionPerformed(ActionEvent e) {
textField.setText("£3.20");
}
}
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.io.*;
//The problem could be here!
public class SUBTOTAL {
BufferedReader in;
BufferedWriter out;
int pennies;
int itemPrice;
public double sub_total;
public double SUBTOTAL(int itemPrice) throws FileNotFoundException {
try {
in = new BufferedReader(new FileReader("sub_total.txt"));
pennies = Integer.parseInt(in.readLine());
pennies = pennies + itemPrice;
in.close();
}
catch(IOException e) {
System.out.println("3!");
}
try {
out = new BufferedWriter(new FileWriter("sub_total.txt"));
out.write(pennies);
out.close();
}
catch(IOException e){
System.out.println("4!");
}
sub_total = pennies;
sub_total = sub_total / 100;
return sub_total;
}
}