Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class NumberNotFoundException extends Exception {
- public NumberNotFoundException() {
- super("Number not found in array");
- }
- public NumberNotFoundException(String message) {
- super(message);
- }
- }
- public class DuplicateValueException extends Exception {
- public DuplicateValueException() {
- super("Duplicate number found in the array");
- }
- public DuplicateValueException(String message) {
- super(message);
- }
- }
- import java.awt.FlowLayout;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JTextField;
- public class Homework6 extends JFrame {
- private JTextField numbersField;
- private JTextField getNumbers;
- private JTextField getNumbersPosition;
- private JTextField outputResults;
- private JPanel numbersIN;
- private JPanel numbersOUT;
- private JPanel results;
- private int array[] = new int[10];
- private int index=0;
- private boolean b = false;
- private int p=0;
- public Final() {
- super("Accessing Array values");
- setLayout(new FlowLayout());
- numbersIN = new JPanel();
- numbersIN.add(new JLabel("Enter array elements here"));
- numbersField = new JTextField(10);
- numbersIN.add(numbersField);
- numbersField.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- String tmp = numbersField.getText();
- char[] chars = tmp.toCharArray();
- int integerArray[] = new int[chars.length];
- try {
- if (integerArray.length > 10) {
- throw new ArrayIndexOutOfBoundsException("Array cannot be larger then 10. You have " + integerArray.length);
- }
- for (int i = 0; i < tmp.length(); i++) {
- if (!Character.isLetter(chars[i])) {
- array[i] = Integer.parseInt(chars[i] + "");
- System.out.print(array[i] + " ");
- } else {
- throw new NumberFormatException("Only valid integers must be entered no letters. This character isnt allowed: " + chars[i]);
- }
- }
- /*
- boolean duplicates=false;
- for (int j=0;j<array.length;j++)
- for (int k=j+1;k<array.length;k++)
- if (k!=j && array[k] == array[j])
- duplicates=true;
- if(duplicates==true)
- throw new DuplicateValueException("Duplicate Value Detected, please enter unique numbers");
- */
- } catch (NumberFormatException | ArrayIndexOutOfBoundsException ex) { //| DuplicateValueException ex) {
- JOptionPane.showMessageDialog(getContentPane(), ex.getMessage());
- }
- numbersField.setText("");
- }
- });
- numbersOUT = new JPanel(new GridLayout(2, 2));
- numbersOUT.add(new JLabel("Enter number to retrieve"));
- getNumbers = new JTextField(10);
- numbersOUT.add(getNumbers);
- getNumbers.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent event) {
- String tmp1 = getNumbers.getText();
- try {
- int search = Integer.parseInt(tmp1);
- for (p = 0; p < array.length; p++) {
- System.out.print(array[p] + " ");
- if(array[p]==search) {
- b = true;
- index = p;
- }
- }
- if(b==true){
- outputResults.setText(search + " was in the following fields of the array " + index);
- } else {
- throw new NumberNotFoundException("Your number was not found.");
- }
- } catch (NumberFormatException ex) {
- JOptionPane.showMessageDialog(getContentPane(), "You can only search for integers.");
- } catch (NumberNotFoundException ex) {
- JOptionPane.showMessageDialog(getContentPane(), ex.getMessage());
- }
- getNumbers.setText("");
- }
- });
- numbersOUT.add(new JLabel("Enter index to retrieve"));
- getNumbersPosition = new JTextField(10);
- numbersOUT.add(getNumbersPosition);
- getNumbersPosition.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent event) {
- String tmp2 = getNumbersPosition.getText();
- try {
- int search1 = Integer.parseInt(tmp2);
- if (search1 < 10) {
- outputResults.setText("The number " + array[search1] + " was found in location " + search1);
- } else {
- throw new ArrayIndexOutOfBoundsException("Array search cannot be larger then 9. You have " + search1);
- }
- } catch (NumberFormatException e1) {
- JOptionPane.showMessageDialog(getContentPane(), "Only valid integers must be entered, no letters.");
- } catch (ArrayIndexOutOfBoundsException e1) {
- JOptionPane.showMessageDialog(getContentPane(), e1.getMessage());
- }
- getNumbersPosition.setText("");
- }
- });
- results = new JPanel();
- results.add(new JLabel("Result"));
- outputResults = new JTextField(30);
- outputResults.setEditable(false);
- results.add(outputResults);
- add(numbersIN);
- add(numbersOUT);
- add(results);
- }
- }
- import javax.swing.JFrame;
- public class Homework6Test {
- public static void main(String args[]){
- HW test = new HW();
- test.setTitle("Homework 6 - Exceptions");
- test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- test.setSize(400, 200);
- test.setVisible(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement