Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.FlowLayout;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.ArrayList;
- import javax.swing.JButton;
- import javax.swing.JCheckBox;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JTextField;
- public final class CharGeneratorGUI extends JFrame
- {
- private final static char[] CHARS_ACCESS = {
- 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
- 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
- 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',
- 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '+', '<', '>', '/', '?', '{',
- '}', '[', ']', '\\', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '-'
- };
- public CharGeneratorGUI()
- {
- super();
- super.setLayout(new FlowLayout());
- final JPanel jpTexts = new JPanel();
- jpTexts.setLayout(new GridLayout(2, 2, 10, 10)); // 2 rows, 2 columns, and gaps 10
- final JLabel jlblPhraseLength = new JLabel();
- jlblPhraseLength.setText("Length of phrase:");
- jpTexts.add(jlblPhraseLength);
- final JTextField jtfLength = new JTextField();
- jpTexts.add(jtfLength);
- final JLabel jlblGeneratedPhrase = new JLabel();
- jlblGeneratedPhrase.setText("Generated Phrase:");
- jpTexts.add(jlblGeneratedPhrase);
- final JTextField jtfPhrase = new JTextField();
- jpTexts.add(jtfPhrase);
- super.add(jpTexts);
- final JPanel jpOptions = new JPanel();
- jpOptions.setLayout(new GridLayout(2, 2, 10, 10)); // 2 rows, 2 columns, and gaps 10
- final JCheckBox jcbUpperCase = new JCheckBox();
- jcbUpperCase.setText("Upper Case");
- jpOptions.add(jcbUpperCase);
- final JCheckBox jcbLowerCase = new JCheckBox();
- jcbLowerCase.setText("Lower Case");
- jpOptions.add(jcbLowerCase);
- final JCheckBox jcbNumbers = new JCheckBox();
- jcbNumbers.setText("Numbers");
- jpOptions.add(jcbNumbers);
- final JCheckBox jcbSpecialChars = new JCheckBox();
- jcbSpecialChars.setText("Special Chars");
- jpOptions.add(jcbSpecialChars);
- super.add(jpOptions);
- final JPanel jpExtras = new JPanel();
- jpExtras.setLayout(new GridLayout(2, 1, 10, 10)); // 2 rows, 1 column, and gaps 10
- final JLabel jlblWarning = new JLabel();
- jpExtras.add(jlblWarning);
- final JButton jbtGenerate = new JButton();
- jbtGenerate.setText("Generate");
- jbtGenerate.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- jlblWarning.setText(null);
- ArrayList<Character> chars = new ArrayList<Character>();
- if (jtfLength.getText().equals("") || jtfLength.getText().equals("0")) {
- jlblWarning.setText("Cannot generate word without length!");
- return;
- }
- if (!(jcbUpperCase.isSelected() || jcbLowerCase.isSelected() ||
- jcbNumbers.isSelected() || jcbSpecialChars.isSelected())) {
- jlblWarning.setText("You must select at least one box.");
- return;
- }
- if (jcbUpperCase.isSelected()) {
- for (int a = 0; a <= 25; a++) {
- chars.add(CHARS_ACCESS[a]);
- }
- }
- if (jcbLowerCase.isSelected()) {
- for (int b = 26; b <= 50; b++) {
- chars.add(CHARS_ACCESS[b]);
- }
- }
- if (jcbNumbers.isSelected()) {
- for (int c = 51; c <= 60; c++) {
- chars.add(CHARS_ACCESS[c]);
- }
- }
- if (jcbSpecialChars.isSelected()) {
- for (int d = 61; d < CHARS_ACCESS.length; d++) {
- chars.add(CHARS_ACCESS[d]);
- }
- }
- ArrayList<Character> lettersInWord = new ArrayList<Character>();
- String text = jtfLength.getText();
- int lengthWord = Integer.parseInt(text);
- for (int i = 0; i < lengthWord; i++) {
- int randomNum = (int) (Math.random() * chars.size());
- lettersInWord.add(chars.get(randomNum));
- }
- String totalWord = "";
- for (int j = 0; j < lettersInWord.size(); j++) {
- totalWord = totalWord + lettersInWord.get(j);
- }
- jtfPhrase.setText(totalWord);
- }
- });
- jpExtras.add(jbtGenerate);
- super.add(jpExtras);
- super.setTitle("Character Generator");
- super.setSize(250, 225);
- super.setLocationRelativeTo(null);
- super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- public static void main(String[] args)
- {
- new CharGeneratorGUI().setVisible(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement