From 6232db9b6705dbec4c2e1a2959b0f572ae34c847 Mon Sep 17 00:00:00 2001 From: Alexander Noyle Date: Tue, 14 Mar 2017 16:09:54 -0400 Subject: [PATCH] Add initial files to repository 0.1 Alpha --- AARC Icon.ico | Bin 0 -> 370070 bytes AARC.java | 159 +++++++++++++++++++++++++++++ Alex's Aspect Ratio Calculator.jar | Bin 0 -> 3492 bytes 3 files changed, 159 insertions(+) create mode 100644 AARC Icon.ico create mode 100644 AARC.java create mode 100644 Alex's Aspect Ratio Calculator.jar diff --git a/AARC Icon.ico b/AARC Icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..22bde2787be6d5e8c100dafb85bd5a5e088783fa GIT binary patch literal 370070 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 literal 0 HcmV?d00001 diff --git a/AARC.java b/AARC.java new file mode 100644 index 0000000..92aea57 --- /dev/null +++ b/AARC.java @@ -0,0 +1,159 @@ +// Import color library for text formatting +import java.awt.Color; +import java.awt.Font; +// Import action classes for button pushes +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +// Import UI classes for window/elements +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; + +// Main class declaration +public class AARC { + + // Declare text field to allow user to enter display pixel width + // Declared as static so that the value entered by the user can be accessed in the calculate button action listener + static JTextField widthEntry = new JTextField(5); + + // Declare text field to allow user to enter display pixel height + // Declared as static so that the value entered by the user can be accessed in the calculate button action listener + static JTextField heightEntry = new JTextField(5); + + // Declare result display text field + // Declared as static so that it can be accessed in action listener method + static JTextField resultDisplay = new JTextField(); + + // init main + public static void main(String[] args) { + + // Declare panel to hold frame / set layout / set style + // TODO: Revise UI - consider switching layout to something which allows more precise alignment, while still allowing the user to move around window. + JPanel panel = new JPanel(); + panel.setBackground(Color.DARK_GRAY); + + // Declare label for width text field + JLabel widthLabel = new JLabel("Width: "); + // Set label text color + widthLabel.setForeground(Color.white); + + // Declare label for height text field + JLabel heightLabel = new JLabel("Height: "); + // Set label text color + heightLabel.setForeground(Color.white); + + // Declare "calculate" button + JButton calculateButton = new JButton("Calculate"); + // Removes border around button text for UI niceness + calculateButton.setFocusable(false); + // Calls button action method when pressed + calculateButtonAction(calculateButton); + + // Logic to prevent crash upon startup when text field values are empty + if(widthEntry.getText().equals("") && heightEntry.getText().equals("")) { + resultDisplay.setText("Enter Values..."); + resultDisplay.setFont(new Font("Enter Values...", Font.ITALIC, 12)); + } + // Display result by calling math method + else { + // TODO: Insert Github link / make it clickable / make email address clickable to open in mail client or copy if one is not present? + JOptionPane.showMessageDialog(null, "This is a bug that shouldn't be happening. Contact the developer at alexnoyle@icloud.com, or open an issue on github", "Fatal Error", JOptionPane.INFORMATION_MESSAGE); + } + + // Formatting for resultDisplay text field to make it appear as a JLabel but still be selectable for copy/paste + resultDisplay.setEditable(false); + resultDisplay.setBorder(null); + resultDisplay.setForeground(Color.white); + resultDisplay.setBackground(Color.DARK_GRAY); + + // Add UI elements to panel + panel.add(widthLabel); + panel.add(widthEntry); + panel.add(heightLabel); + panel.add(heightEntry); + panel.add(resultDisplay); + panel.add(calculateButton); + + // Declare frame + JFrame frame = new JFrame(); + // Add panel to frame + frame.add(panel); + // Set window attributes + frame.setTitle(" AARC"); + frame.setSize(150, 150); + frame.setLocation(200, 200); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setVisible(true); + // Set default button (allows "enter" keys to calculate) + frame.getRootPane().setDefaultButton(calculateButton); + + } + + // Method to calculate aspect ratio + public static String aspectRatioMath(int widthWorker, int heightWorker) { + + // Call GCF method with width/height values + int calcPrimary = greatestCommonDivisor(widthWorker, heightWorker); + // Divide width by GCF + int calcSecondary = widthWorker / calcPrimary; + // Divide height by GCF + int calcTirtiary = heightWorker / calcPrimary; + + // Assemble calculations into formatted string (aspect ratio as displayed to user) + String calcAssembly = String.valueOf(calcSecondary) + ":" + String.valueOf(calcTirtiary); + // Return completed assembled string + return calcAssembly; + + } + + // Method to determine GCF of width and height - generic + public static int greatestCommonDivisor(int valueX, int valueY) { + + // Euclidean Algorithm --> credit to Oleksander Firsov & Euclid of Alexandria + if (valueY == 0) { + return valueX; + } + else { + return greatestCommonDivisor(valueY, valueX % valueY); + } + + } + + // Method to make calculate button active + public static void calculateButtonAction(JButton workerButton) { + + // Declare action listener function using worker variable + workerButton.addActionListener(new ActionListener() { + + // Nested method for performing action + public void actionPerformed(ActionEvent event) { + + // Logic to catch blank text in fields and display errors if caught + // TODO: Catch other potential crashes such as non-number characters + if (widthEntry.getText().equals("") && heightEntry.getText().equals("")) { + JOptionPane.showMessageDialog(null, "Width and Height are both blank. Please enter them and try again.", "Error", JOptionPane.INFORMATION_MESSAGE); + } + else if (widthEntry.getText().equals("")) { + JOptionPane.showMessageDialog(null, "Width is blank. Please enter it and try again.", "Error", JOptionPane.INFORMATION_MESSAGE); + } + else if (heightEntry.getText().equals("")) { + JOptionPane.showMessageDialog(null, "Height is blank. Please enter it and try again.", "Error", JOptionPane.INFORMATION_MESSAGE); + } + else { + // Passes in user-entered values to label + resultDisplay.setText("Ratio = " + aspectRatioMath(Integer.valueOf(widthEntry.getText()), Integer.valueOf(heightEntry.getText()))); + resultDisplay.setFont(new Font("Ratio =", Font.BOLD, 12)); + } + + } + + // End action listener event call + }); + + } + +// %end +} \ No newline at end of file diff --git a/Alex's Aspect Ratio Calculator.jar b/Alex's Aspect Ratio Calculator.jar new file mode 100644 index 0000000000000000000000000000000000000000..93e54d935ddd88ca6d5826922a92b57e241ce96e GIT binary patch literal 3492 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