1
0
mirror of https://github.com/DanilaFe/abacus synced 2024-11-16 07:33:09 -08:00
Abacus/src/org/nwapw/abacus/window/Window.java

131 lines
3.5 KiB
Java
Raw Normal View History

2017-07-25 14:52:57 -07:00
package org.nwapw.abacus.window;
import javax.swing.*;
import java.awt.*;
2017-07-26 10:10:37 -07:00
/**
* The main UI window for the calculator.
*/
2017-07-25 14:52:57 -07:00
public class Window extends JFrame {
2017-07-26 10:10:37 -07:00
/**
* A collection of outputs from the calculator.
*/
2017-07-25 14:52:57 -07:00
private String history;
2017-07-26 10:10:37 -07:00
/**
* The last output by the calculator.
*/
2017-07-25 14:52:57 -07:00
private String lastOutput;
2017-07-26 10:10:37 -07:00
/**
* The panel where the output occurs.
*/
private JPanel outputPanel;
2017-07-26 10:10:37 -07:00
/**
* The text area reserved for the last output.
*/
private JTextArea lastOutputArea;
2017-07-26 10:10:37 -07:00
/**
* The text area used for all history output.
*/
private JTextArea historyArea;
2017-07-26 10:10:37 -07:00
/**
* The scroll pane for the history area.
*/
private JScrollPane historyAreaScroll;
2017-07-26 10:10:37 -07:00
/**
* The panel where the input occurs.
*/
private JPanel inputPanel;
2017-07-26 10:10:37 -07:00
/**
* The input text field.
*/
private JTextField inputField;
2017-07-26 10:10:37 -07:00
/**
* The "submit" button.
*/
private JButton inputEnterButton;
2017-07-26 10:10:37 -07:00
/**
* The side panel for separate configuration.
*/
private JPanel sidePanel;
2017-07-26 10:10:37 -07:00
/**
* Panel for elements relating to number
* system selection.
*/
private JPanel numberSystemPanel;
2017-07-26 10:10:37 -07:00
/**
* The possible list of number systems.
*/
private JComboBox<String> numberSystemList;
2017-07-26 10:10:37 -07:00
/**
* The panel for elements relating to
* function selection.
*/
private JPanel functionSelectPanel;
2017-07-26 10:10:37 -07:00
/**
* The list of functions available to the user.
*/
private JComboBox<String> functionList;
2017-07-26 10:10:37 -07:00
/**
* The button used to select a function.
*/
private JButton functionSelectButton;
public Window() {
2017-07-25 14:52:57 -07:00
super();
history = "";
lastOutput = "";
setSize(640, 480);
inputField = new JTextField();
inputEnterButton = new JButton("Calculate");
inputPanel = new JPanel();
inputPanel.setLayout(new BorderLayout());
2017-07-25 22:08:12 -07:00
inputPanel.add(inputField, BorderLayout.CENTER);
inputPanel.add(inputEnterButton, BorderLayout.EAST);
historyArea = new JTextArea(history);
historyAreaScroll = new JScrollPane(historyArea);
lastOutputArea = new JTextArea(lastOutput);
lastOutputArea.setEditable(false);
lastOutputArea.setText(":)");
outputPanel = new JPanel();
outputPanel.setLayout(new BorderLayout());
2017-07-25 22:08:12 -07:00
outputPanel.add(historyAreaScroll, BorderLayout.CENTER);
outputPanel.add(lastOutputArea, BorderLayout.SOUTH);
numberSystemList = new JComboBox<>();
numberSystemPanel = new JPanel();
numberSystemPanel.setLayout(new BorderLayout());
2017-07-25 22:08:12 -07:00
numberSystemPanel.add(new JLabel("Number Type:"), BorderLayout.NORTH);
numberSystemPanel.add(numberSystemList, BorderLayout.CENTER);
functionList = new JComboBox<>();
functionSelectButton = new JButton("Select");
functionSelectPanel = new JPanel();
functionSelectPanel.setLayout(new BorderLayout());
2017-07-25 22:08:12 -07:00
functionSelectPanel.add(new JLabel("Functions:"), BorderLayout.NORTH);
functionSelectPanel.add(functionList, BorderLayout.CENTER);
functionSelectPanel.add(functionSelectButton, BorderLayout.SOUTH);
sidePanel = new JPanel();
sidePanel.setLayout(new BorderLayout());
2017-07-25 22:08:12 -07:00
sidePanel.add(numberSystemPanel, BorderLayout.NORTH);
sidePanel.add(functionSelectPanel, BorderLayout.SOUTH);
add(outputPanel, BorderLayout.CENTER);
add(sidePanel, BorderLayout.EAST);
add(inputPanel, BorderLayout.SOUTH);
2017-07-25 14:52:57 -07:00
}
}