Advertisement
Guest User

Untitled

a guest
Jun 18th, 2012
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.13 KB | None | 0 0
  1. public class NumberNotFoundException extends Exception {
  2.  
  3.     public NumberNotFoundException() {
  4.         super("Number not found in array");
  5.     }
  6.    
  7.     public NumberNotFoundException(String message) {
  8.         super(message);
  9.     }
  10. }
  11.  
  12. public class DuplicateValueException extends Exception {
  13.  
  14.     public DuplicateValueException() {
  15.         super("Duplicate number found in the array");
  16.     }
  17.    
  18.     public DuplicateValueException(String message) {
  19.         super(message);
  20.     }
  21. }
  22.  
  23. import java.awt.FlowLayout;
  24. import java.awt.GridLayout;
  25. import java.awt.event.ActionEvent;
  26. import java.awt.event.ActionListener;
  27. import javax.swing.JFrame;
  28. import javax.swing.JLabel;
  29. import javax.swing.JOptionPane;
  30. import javax.swing.JPanel;
  31. import javax.swing.JTextField;
  32.  
  33. public class Homework6 extends JFrame {
  34.     private JTextField numbersField;
  35.     private JTextField getNumbers;
  36.     private JTextField getNumbersPosition;
  37.     private JTextField outputResults;
  38.     private JPanel numbersIN;
  39.     private JPanel numbersOUT;
  40.     private JPanel results;
  41.     private int array[] = new int[10];
  42.     private int index=0;
  43.     private boolean b = false;
  44.     private int p=0;
  45.  
  46.  
  47.  
  48.     public Final() {
  49.         super("Accessing Array values");
  50.         setLayout(new FlowLayout());
  51.         numbersIN = new JPanel();
  52.         numbersIN.add(new JLabel("Enter array elements here"));
  53.         numbersField = new JTextField(10);
  54.         numbersIN.add(numbersField);
  55.         numbersField.addActionListener(new ActionListener() {
  56.             public void actionPerformed(ActionEvent e) {
  57.                
  58.  
  59.                 String tmp = numbersField.getText();
  60.                 char[] chars = tmp.toCharArray();
  61.                 int integerArray[] = new int[chars.length];
  62.  
  63.                 try {
  64.                     if (integerArray.length > 10) {
  65.                         throw new ArrayIndexOutOfBoundsException("Array cannot be larger then 10. You have " + integerArray.length);
  66.                     }
  67.                     for (int i = 0; i < tmp.length(); i++) {
  68.                         if (!Character.isLetter(chars[i])) {
  69.                             array[i] = Integer.parseInt(chars[i] + "");
  70.                             System.out.print(array[i] + " ");
  71.                         } else {
  72.                             throw new NumberFormatException("Only valid integers must be entered no letters. This character isnt allowed: " + chars[i]);
  73.                         }
  74.                     }
  75.                     /*
  76.                     boolean duplicates=false;
  77.                     for (int j=0;j<array.length;j++)
  78.                       for (int k=j+1;k<array.length;k++)
  79.                         if (k!=j && array[k] == array[j])
  80.                           duplicates=true;
  81.                     if(duplicates==true)
  82.                         throw new DuplicateValueException("Duplicate Value Detected, please enter unique numbers");
  83.                     */
  84.                 } catch (NumberFormatException | ArrayIndexOutOfBoundsException ex) { //| DuplicateValueException ex) {
  85.                     JOptionPane.showMessageDialog(getContentPane(), ex.getMessage());
  86.                 }
  87.                 numbersField.setText("");
  88.             }
  89.         });
  90.  
  91.  
  92.         numbersOUT = new JPanel(new GridLayout(2, 2));
  93.         numbersOUT.add(new JLabel("Enter number to retrieve"));
  94.         getNumbers = new JTextField(10);
  95.         numbersOUT.add(getNumbers);
  96.         getNumbers.addActionListener(new ActionListener() {
  97.             public void actionPerformed(ActionEvent event) {
  98.                
  99.                 String tmp1 = getNumbers.getText();
  100.                 try {
  101.                     int search = Integer.parseInt(tmp1);
  102.                     for (p = 0; p < array.length; p++) {
  103.                         System.out.print(array[p] + " ");
  104.                         if(array[p]==search) {
  105.                             b = true;
  106.                             index = p;
  107.                         }
  108.                     }
  109.                     if(b==true){
  110.                         outputResults.setText(search + " was in the following fields of the array " + index);
  111.                     } else {
  112.                         throw new NumberNotFoundException("Your number was not found.");
  113.                     }
  114.  
  115.                 } catch (NumberFormatException ex) {
  116.                     JOptionPane.showMessageDialog(getContentPane(), "You can only search for integers.");
  117.  
  118.                 } catch (NumberNotFoundException ex) {
  119.                     JOptionPane.showMessageDialog(getContentPane(), ex.getMessage());
  120.                 }
  121.                
  122.                 getNumbers.setText("");
  123.             }
  124.         });
  125.         numbersOUT.add(new JLabel("Enter index to retrieve"));
  126.         getNumbersPosition = new JTextField(10);
  127.         numbersOUT.add(getNumbersPosition);
  128.         getNumbersPosition.addActionListener(new ActionListener() {
  129.             public void actionPerformed(ActionEvent event) {
  130.                
  131.                 String tmp2 = getNumbersPosition.getText();
  132.                 try {
  133.                     int search1 = Integer.parseInt(tmp2);
  134.                     if (search1 < 10) {
  135.                         outputResults.setText("The number " + array[search1] + " was found in location " + search1);
  136.                     } else {
  137.                         throw new ArrayIndexOutOfBoundsException("Array search cannot be larger then 9. You have " + search1);
  138.                     }
  139.                 } catch (NumberFormatException e1) {
  140.                     JOptionPane.showMessageDialog(getContentPane(), "Only valid integers must be entered, no letters.");
  141.  
  142.                 } catch (ArrayIndexOutOfBoundsException e1) {
  143.                     JOptionPane.showMessageDialog(getContentPane(), e1.getMessage());
  144.                 }
  145.                
  146.                 getNumbersPosition.setText("");
  147.             }
  148.         });
  149.  
  150.         results = new JPanel();
  151.         results.add(new JLabel("Result"));
  152.         outputResults = new JTextField(30);
  153.         outputResults.setEditable(false);
  154.         results.add(outputResults);
  155.         add(numbersIN);
  156.         add(numbersOUT);
  157.         add(results);
  158.     }
  159.  
  160. }
  161.  
  162. import javax.swing.JFrame;
  163.  
  164. public class Homework6Test {
  165.     public static void main(String args[]){
  166.     HW test = new HW();
  167.     test.setTitle("Homework 6 - Exceptions");
  168.     test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  169.     test.setSize(400, 200);
  170.     test.setVisible(true);
  171.     }
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement