Advertisement
Yarukinasu

CharGeneratorGUI

May 18th, 2011
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.37 KB | None | 0 0
  1. import java.awt.FlowLayout;
  2. import java.awt.GridLayout;
  3.  
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6.  
  7. import java.util.ArrayList;
  8.  
  9. import javax.swing.JButton;
  10. import javax.swing.JCheckBox;
  11. import javax.swing.JFrame;
  12. import javax.swing.JLabel;
  13. import javax.swing.JPanel;
  14. import javax.swing.JTextField;
  15.  
  16. public final class CharGeneratorGUI extends JFrame
  17. {
  18.     private final static char[] CHARS_ACCESS = {
  19.         'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
  20.         'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
  21.         'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',
  22.         'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '+', '<', '>', '/', '?', '{',
  23.         '}', '[', ']', '\\', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '-'
  24.     };
  25.  
  26.     public CharGeneratorGUI()
  27.     {
  28.         super();
  29.  
  30.         super.setLayout(new FlowLayout());
  31.  
  32.         final JPanel jpTexts = new JPanel();
  33.         jpTexts.setLayout(new GridLayout(2, 2, 10, 10)); // 2 rows, 2 columns, and gaps 10
  34.  
  35.         final JLabel jlblPhraseLength = new JLabel();
  36.         jlblPhraseLength.setText("Length of phrase:");
  37.         jpTexts.add(jlblPhraseLength);
  38.  
  39.         final JTextField jtfLength = new JTextField();
  40.         jpTexts.add(jtfLength);
  41.  
  42.         final JLabel jlblGeneratedPhrase = new JLabel();
  43.         jlblGeneratedPhrase.setText("Generated Phrase:");
  44.         jpTexts.add(jlblGeneratedPhrase);
  45.  
  46.         final JTextField jtfPhrase = new JTextField();
  47.         jpTexts.add(jtfPhrase);
  48.  
  49.         super.add(jpTexts);
  50.  
  51.         final JPanel jpOptions = new JPanel();
  52.         jpOptions.setLayout(new GridLayout(2, 2, 10, 10)); // 2 rows, 2 columns, and gaps 10
  53.  
  54.         final JCheckBox jcbUpperCase = new JCheckBox();
  55.         jcbUpperCase.setText("Upper Case");
  56.         jpOptions.add(jcbUpperCase);
  57.  
  58.         final JCheckBox jcbLowerCase = new JCheckBox();
  59.         jcbLowerCase.setText("Lower Case");
  60.         jpOptions.add(jcbLowerCase);
  61.  
  62.         final JCheckBox jcbNumbers = new JCheckBox();
  63.         jcbNumbers.setText("Numbers");
  64.         jpOptions.add(jcbNumbers);
  65.  
  66.         final JCheckBox jcbSpecialChars = new JCheckBox();
  67.         jcbSpecialChars.setText("Special Chars");
  68.         jpOptions.add(jcbSpecialChars);
  69.  
  70.         super.add(jpOptions);
  71.  
  72.         final JPanel jpExtras = new JPanel();
  73.         jpExtras.setLayout(new GridLayout(2, 1, 10, 10)); // 2 rows, 1 column, and gaps 10
  74.  
  75.         final JLabel jlblWarning = new JLabel();
  76.         jpExtras.add(jlblWarning);
  77.  
  78.         final JButton jbtGenerate = new JButton();
  79.         jbtGenerate.setText("Generate");
  80.         jbtGenerate.addActionListener(new ActionListener()
  81.         {
  82.             public void actionPerformed(ActionEvent e)
  83.             {
  84.                 jlblWarning.setText(null);
  85.                 ArrayList<Character> chars = new ArrayList<Character>();
  86.  
  87.                 if (jtfLength.getText().equals("") || jtfLength.getText().equals("0")) {
  88.                     jlblWarning.setText("Cannot generate word without length!");
  89.                     return;
  90.                 }
  91.  
  92.                 if (!(jcbUpperCase.isSelected() || jcbLowerCase.isSelected() ||
  93.                     jcbNumbers.isSelected() || jcbSpecialChars.isSelected())) {
  94.                     jlblWarning.setText("You must select at least one box.");
  95.                     return;
  96.                 }
  97.  
  98.                 if (jcbUpperCase.isSelected()) {
  99.                     for (int a = 0; a <= 25; a++) {
  100.                         chars.add(CHARS_ACCESS[a]);
  101.                     }
  102.                 }
  103.  
  104.                 if (jcbLowerCase.isSelected()) {
  105.                     for (int b = 26; b <= 50; b++) {
  106.                         chars.add(CHARS_ACCESS[b]);
  107.                     }
  108.                 }
  109.  
  110.                 if (jcbNumbers.isSelected()) {
  111.                     for (int c = 51; c <= 60; c++) {
  112.                         chars.add(CHARS_ACCESS[c]);
  113.                     }
  114.                 }
  115.  
  116.                 if (jcbSpecialChars.isSelected()) {
  117.                     for (int d = 61; d < CHARS_ACCESS.length; d++) {
  118.                         chars.add(CHARS_ACCESS[d]);
  119.                     }
  120.                 }
  121.  
  122.                 ArrayList<Character> lettersInWord = new ArrayList<Character>();
  123.                 String text = jtfLength.getText();
  124.                 int lengthWord = Integer.parseInt(text);
  125.  
  126.                 for (int i = 0; i < lengthWord; i++) {
  127.                     int randomNum = (int) (Math.random() * chars.size());
  128.                     lettersInWord.add(chars.get(randomNum));
  129.                 }
  130.  
  131.                 String totalWord = "";
  132.  
  133.                 for (int j = 0; j < lettersInWord.size(); j++) {
  134.                     totalWord = totalWord + lettersInWord.get(j);
  135.                 }
  136.  
  137.                 jtfPhrase.setText(totalWord);
  138.             }
  139.         });
  140.  
  141.         jpExtras.add(jbtGenerate);
  142.  
  143.         super.add(jpExtras);
  144.  
  145.         super.setTitle("Character Generator");
  146.         super.setSize(250, 225);
  147.         super.setLocationRelativeTo(null);
  148.         super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  149.     }
  150.  
  151.     public static void main(String[] args)
  152.     {
  153.         new CharGeneratorGUI().setVisible(true);
  154.     }
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement