Now I am studying my Diploma in programming, we have the task of creating a calculator to calculate the total, average, counter, maximum and minimum entered, cancel and clear buttons. Iโve done everything, including the cancel button, but my lecturer provided an additional loan option by adding a stack function to the cancel method. I developed how to click objects, but I'm not sure how to put the object and add the requested object to my GUI. I understand that this is not entirely necessary, but I want to do this for the rest of my life, so I try very hard. If someone can help me, my source file is below.
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import java.io.*; public class DataPanel extends JPanel { ArrayList<Data> dataStore = new ArrayList<Data>(); Stack dataStack = new Stack(); private double _number, _oldNumber; private double _total, _oldTotal; private int _count, _oldCount; private double _average, _oldAverage; private double _min, _oldMin; private double _max, _oldMax; private JTextField _inField = new JTextField(); private JTextField _totalField = new JTextField(); private JTextField _averageField = new JTextField(); private JTextField _minField = new JTextField(); private JTextField _maxField = new JTextField(); private JTextField _countField = new JTextField(); public DataPanel() { setLayout(new GridLayout(6, 2, 1, 1)); add(new JLabel("Number")); add(_inField); _inField.addActionListener(new InFieldListener()); add(new JLabel("Total")); add(_totalField); _totalField.setEditable(false); add(new JLabel("Count")); add(_countField); _countField.setEditable(false); add(new JLabel("Average")); add(_averageField); _averageField.setEditable(false); add(new JLabel("Maximum")); add(_maxField); _maxField.setEditable(false); add(new JLabel("Minimum")); add(_minField); _minField.setEditable(false); } public void clear() { _total = 0; _count = 0; _average = 0; _max = 0; _min = 0; _inField.setText(""); _totalField.setText(""); _countField.setText(""); _averageField.setText(""); _maxField.setText(""); _minField.setText(""); } public void undo() { } private class Data { private Data(double _number, double _total, int _count, double _average, double _max, double _min) { _number = _number; _total = _total; _count = _count; _average = _average; _max = _max; _min = _min; } } private class InFieldListener implements ActionListener { public void actionPerformed(ActionEvent e) { if(_inField.getText().equals("exit")) { System.exit(0); } try { _number = Double.parseDouble(_inField.getText()); _inField.setText(""); _count++; if(_count == 1) { _min = _number; _max = _number; } else if(_number >= _max) { _max = _number; } else if(_number <= _min) { _min = _number; } _total += _number; _average = _total/_count; _totalField.setText(String.valueOf(_total)); _countField.setText(String.valueOf(_count)); _averageField.setText(String.valueOf(_average)); _maxField.setText(String.valueOf(_max)); _minField.setText(String.valueOf(_min));
All syntax surrounded by / * * / is the original undo method.
source share